IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Tester la valeur(float ou pas) d'un input text


Sujet :

JavaScript

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Tester la valeur(float ou pas) d'un input text
    Bonjour,

    Je voudrais tester la valeur que rentre un utilisateur dans un formulaire.
    Je veux etre certain que la valeur est un int ou un float. Comment faire pour tester ca dans javascript ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script language='Javascript1.2'>
    function testNumber() { if (document.AccountForm.amount.value <1) 
    alert('Double value needed !');
    AccountForm.amount.value=0;};
    </script>
     
    <TD><input type='text' name='AMOUNT' onChange='testNumber()'></TD></TR>
    Pour l'instant c'est mon code, a noter que ce code ne marche pas meme lorsque la valeur amount est inferieur a 1.

  2. #2
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut Re: Tester la valeur(float ou pas) d'un input text
    Citation Envoyé par Battosaiii
    Bonjour,

    Je voudrais tester la valeur que rentre un utilisateur dans un formulaire.
    Je veux etre certain que la valeur est un int ou un float. Comment faire pour tester ca dans javascript ?
    Cherches un point ou une virgule dans le champ texte....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monChamp.value.indexOf(',')>0
    :

  3. #3
    Rédacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par défaut
    tu peux aussi t'interesser aux fonctions parseInt() et parseFloat() qui vont chercher à te retourner la valeur sous forme d'un entier (respectivement d'un float)

    Si la conversion n'est pas possible, tu obtiens en retour de ces fonctions la valeur NaN (Not a Number)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question à trouvé une solution.

    Si vous n'avez pas encore lu les règles du club, mieux vaut tard que jamais!

  4. #4
    Battosaiii
    Invité(e)
    Par défaut
    En prenant en consideration vos commentaire j'ai creer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <script language='Javascript1.2'>
    function testNumber(){ 
    if( isNaN( parseFloat(document.AccountForm.amount.value))) {
    alert('That was an invalid value.');
    AccountForm.amount.value=0;}}
    </script>
    <HTML><HEAD><TITLE>Montant a crediter</TITLE></HEAD><BODY>
    <FORM name ='AccountForm' action=http://localhost:8080/OnlineBankingSystem/servlet/transfer_5 method='POST' >
    <TABLE width='600' border='2'><TR><TD>Montant</TD>
    <TD><input type='text' name='AMOUNT' onChange='testNumber()'></TD></TR>
    </TABLE>
    <input type='hidden' name='DEBIT' value='321'>
    <input type='hidden' name='CREDIT' value='443'>
    <BR><input type='submit' value='valider'><BR>
    </FORM></BODY></HTML>
    P[ourtant je n'obtiens pas ce que je veux.
    Pour l'input amount quand je change la valeur il ne se passe rien pas d'alert pourquoi ?

  5. #5
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    1) onchange et pas onChange
    2) si tu tapes 2, parseFloat retourne 2.0, qui est bien un nombre
    3) pour verifier si c'est bien un décimal, tu dois donc comparer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (parseFloat("mynbr") == parseInt("mynbr")) {/*Nombre entier*/}

  6. #6
    Battosaiii
    Invité(e)
    Par défaut
    Pour verifier si la valeur entree est un float j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if( isNaN( parseFloat(document.AccountForm.amount.value))) {
    alert('That was an invalid value.');
    AccountForm.amount.value=0;}}
    mais ca ne marche pas !
    Quelque soit la valeur que j'insere dans l'input il n'affiche pas de message et en plus il submit le form !!

  7. #7
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if( isNaN( parseFloat(document.AccountForm.amount.value)))
    ne marchera jamais, j'ai mis le code générique à utiliser dans le post JUSTE au dessus...

  8. #8
    Battosaiii
    Invité(e)
    Par défaut
    J'ai mis ton code mais il marche pas !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <HTML><HEAD><TITLE>Amount to credit</TITLE></HEAD><BODY>
    <script language='Javascript1.2'>
    function testNumber(){ 
    iif (parseFloat(document.AccountForm.amount.value) == parseInt(document.AccountForm.amount.value)) {
    alert('That was an invalid value.');
    AccountForm.amount.value=0;}
    </script>
    <FORM name ='AccountForm' action=http://localhost:8080/OnlineBankingSystem/servlet/transfer_5 method='POST' >
    <TABLE width='600' border='2'><TR><TD>Type the amount you want</TD>
    <TD><input type='text' name='AMOUNT' onchange='testNumber()'></TD></TR>
    <TR><TD>From account</TD><TD>account autre</TD></TR>
    <TR><TD>to account</TD><TD>current account</TD></TR>
    </TABLE>
    <input type='hidden' name='DEBIT' value='13'>
    <input type='hidden' name='CREDIT' value='44'>
     
    <BR><input type='submit' value='valider'><BR>
    </FORM></BODY></HTML>
    De plus je veux empecher l'utilisateur de pouvoir ecrire des caracteres alphabetiques. Je veux etre sur que le nombre dans l'input soit un integer ou un chiffre a virgule : 32 ou 32.5(32,5) je sais pas le quel il faut . ou ,.

  9. #9
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function check(n){
    	if(isNaN(n)){
    		alert("saisissez un nombre!")
    	}
    }
     
     
    <p>
    <input type="text" onchange="check(this.value)" />
    </p>

  10. #10
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Petite faute : Tu as mis 2 "i" à if... (du moins c'est ce qui est affiché ici)
    edit : ne taper que des chiffres dans un input.

  11. #11
    Battosaiii
    Invité(e)
    Par défaut
    j'ai mis un i a if mais ca marche pas,je vais essayer ta methode javatwister

  12. #12
    Battosaiii
    Invité(e)
    Par défaut
    Bravo javatwister ca marche !

    Maintenant j'ai un petit probleme il affiche bien la fenetre mais par contre il
    avoie quand meme le formulaire. Comment faire pour qu'il n'envoie rien ?

  13. #13
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Citation Envoyé par Battosaiii
    Bravo javatwister ca marche !
    Tu peux reexpliquer ton but stp, la methode de javatwister permet en effet de savoir si un "string" "represente" un "number", pas si ce "number" est un "float"... Je ne comprends pas bien ton objectif...

  14. #14
    Battosaiii
    Invité(e)
    Par défaut
    Si ca marche aussi pour les float lorsque je rentre 43.43 ou 54 il envoie le formulaire. En revanche lorsque je tape dsggdhsa il m'envoie un message d'erreur.
    Par contre il envoie la variable meme lorsque il affiche la fenetre. Comment faire pour l'empecher d'envoyer un formulaire ?

  15. #15
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    ok, je comprends mieux, tu as confondu "float" et "number".

    un float est un nombre DECIMAL, tandis qu'un number représente n'importe quel nombre.

    Je pensais que tu voulais verrifier si le nombre entré était un DECIMAL uniquement (et je n'étais d'ailleurs pas le seul, soit dit en passant).

    Autant pour moi

  16. #16
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Je ne vois pas pk il enverrait le formulaire, mais bon...
    essaie de mettre ca en fin de function pour voir, mais je serais étonné de voir que ca marche :
    return false

  17. #17
    Battosaiii
    Invité(e)
    Par défaut
    ok desole de m'etre mal exprimer...
    Comment faire pour empecher l'envoie du formulaire a partir de javascript ?

  18. #18
    Battosaiii
    Invité(e)
    Par défaut
    j'avais pas vu ton autre message. Meme avec return false ca marche pas ...il envoie le formulaire
    Voici le code exact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <HTML><HEAD><TITLE>Amount to credit</TITLE></HEAD><BODY>
    <script language='Javascript1.2'>
    function testNumber(n){ 
    	   if(isNaN(n)){
         alert('type a number!') }}
    </script>
    <FORM name ='AccountForm' action=http://localhost:8080/OnlineBankingSystem/servlet/transfer_5 method='POST' >
    <TABLE width='600' border='2'><TR><TD>Type the amount you want</TD>
    <TD><input type='text' name='AMOUNT' onchange='testNumber(this.value)'></TD></TR>
    <TR><TD>From account</TD><TD>account autre</TD></TR>
    <TR><TD>to account</TD><TD>current account</TD></TR>
    </TABLE>
    <input type='hidden' name='DEBIT' value='13'>
    <input type='hidden' name='CREDIT' value='44'>
     
    <BR><input type='submit' value='valider'><BR>
    </FORM></BODY></HTML>

  19. #19
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ...

    envoyer sous condition un formulaire, c'est le problème le plus rabattu ici depuis que je fréquente ce forum! et ça n'a rien à voir avec ton pbm de départ alors cherche un peu dans google "valider un formulaire"!

    forum != tutoriel

  20. #20
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Je vois toujours pas pk il s'envoie tout seul mais voici une idée (a finaliser).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <FORM id="MyForm" ... onsubmit="return cansubmit">...</FORM>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript" language="javascript">
    var cansubmit = false
    </script>
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type="button" ... onclick="cansubmit=true;document.form['MyForm'].submit();" />

Discussions similaires

  1. [Débutant] Tester si une valeur n'est PAS un NaN
    Par Anna76 dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/09/2014, 11h20
  2. Récuperer la valeur d'une thickbox dans un input text
    Par ns_deux dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 25/03/2009, 06h41
  3. [XSLT] tester que la valeur n'est pas
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 15/05/2008, 09h24
  4. Réponses: 2
    Dernier message: 10/04/2007, 16h54
  5. [servlet][tester la valeur des champs récupérés]
    Par maya5 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/05/2004, 10h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo