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 :

Eviter un NaN


Sujet :

JavaScript

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut Eviter un NaN
    Bonsoir,

    Comment fait-on pour éviter d'avoir un NaN dans la case résultat dès que l'on saisit la première valeur ?

    Merci.


    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 type="text/javascript">
     
    function calcul() {
    window.document.myform.resultat.value = parseInt(window.document.myform.valeur1.value) + parseInt(window.document.myform.valeur2.value) ;
    }
    </script>
    </head>
    <body>
    <form method="post" name="myform">
     
    <input type="text" name="valeur1" onkeyup="calcul();"> +
    <input type="text" name="valeur2" onkeyup="calcul();"> =
    <input type="text" name="resultat" onkeyup="calcul();">
     
     
    </form>

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function calcul() 
    {
      var valeur1, valeur2;
     
      valeur1 = parseInt(window.document.myform.valeur1.value);
      valeur2 = parseInt(window.document.myform.valeur2.value);
      if (valeur1.toString()!=Number.NaN.toString() && valeur2.toString()!=Number.NaN.toString())
      {
        window.document.myform.resultat.value = valeur1 + valeur2;
      }
      else
        window.document.myform.resultat.value = "";
    }

  3. #3
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Moi j'aime autant faire le test sur vide avant le parseInt mais c'est juste un choix personnel

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par jbrasselet Voir le message
    Moi j'aime autant faire le test sur vide avant le parseInt mais c'est juste un choix personnel
    et si l'utilisateur écrit une série de caractères quelconques ?

  5. #5
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par défaut
    Si l'utilisateur ne doit saisir que des chiffres, je fais en sorte qu'il ne puisse saisir que des chiffres ^^
    avec un truc du genre
    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
     
    function verifEntier(e) {
    	// if aEvent is null, means the Internet Explorer event model, 
    	// so get window.event. 
    	var IE5 = false; 
     
    	if (!e) var e = window.event; 
    	if (e.keyCode) { IE5= true; code = e.keyCode;} 
    	else if (e.which) code = e.which ; 
     
    	//test du code 
    	if (code < 48 || code > 57) 
    	{ 
    		if(IE5) e.returnValue = false; 
    		else e.preventDefault(); 
    	} 
    }

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Août 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 9
    Par défaut merci
    Bonsoir
    merci beaucoup pour ces réponses.

    Gyrovagus

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encodage de caracteres: eviter 81, 8D, 8F, 90, 9D ->
    Par Fladnag dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/04/2004, 11h17
  2. Pb affichage avec un PaintBox (pour eviter scintillement)
    Par juan64 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/04/2004, 09h21
  3. [opengl] Comment eviter l'ordre de faces ?
    Par :GREG: dans le forum OpenGL
    Réponses: 3
    Dernier message: 02/03/2004, 19h14
  4. sum(XPATH) retourne NaN
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 19/03/2003, 13h48
  5. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57

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