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 :

Vérifier si des champs sont complétés avec des chiffres


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Femme Profil pro
    Infographiste
    Inscrit en
    Septembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 12
    Par défaut Vérifier si des champs sont complétés avec des chiffres
    Bonjour,

    Je me casse la tête avec la vérification de mon formulaire et je ne trouve pas mon erreur, c'est pour cela que je viens voir si vous pourriez m'aider....

    J'ai un formulaire où les gens doivent compléter des quantités en chiffre, donc je voulais utiliser la fonction isNaN. J'ai testé avec quelques champs et ça fonctionnait mais maintenant ça ne fonctionne plus. Quand je teste le formulaire, même si je n'ai écrit qu'avec des chiffres, il me met le message d'erreur...
    Est ce que quelqu'un peut voir ce qui ne fonctionne pas ????
    Je ne mets que quelques ligne du code car je vérifie beaucoup de champs de la même façon.

    D'ailleurs, si il y a une méthode plus légère pour vérifier si plusieurs champs sont bien complétés avec des chiffres, je suis preneuse....


    Merci d'avance


    Alexandra


    Voici mon code


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    function valider(){ 
     
    var verification=""; 
    var str = document.formulaire_commande.hache_demi.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.cerises.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.prunes.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.mirabelles.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.compote.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.miel_liquide.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.miel_tartiner.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.yahourts_fruit.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    var str = document.formulaire_commande.yahourts_fruit.value; 
    if (isNaN(str)) { 
    verification="Les quantités doivent être en chiffre"; 
    } 
     
    if(verification==""){ 
    } 
    else{//sinon verification n'est pas vide 
    alert(verification); 
    return false; 
    } 
    }

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    Appliques d'abord parseInt ou parseFLoat sur les valeurs récupérées et ensuite teste avec isNaN.

    doc : https://developer.mozilla.org/fr/doc...Fonction_isNaN

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Bonjour,

    Habituellement la documentation MDN est plus précise...

    Les fonctions "parseInt()" et "parseFloat()" ne renvoient pas NaN pour un chaine du genre : "123.45texte459"
    parseInt => 123
    parseFloat => 123.45

    Pour ma part, je ne vois pas d'où peut provenir le problème à moins qu'avec null ou '' la fonction isNaN() renvoie true pour certains navigateurs.
    Lequel utilises-tu pour tes tests ? As-tu tester plusieurs navigateurs ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Le pb est que les valeurs récupérées dans le html sont toujours de type "string" même si ce sont des nombres. C'est pour cette raison qu'il faut commencer par parser la valeur pour voir ensuite si elle peut convenir en tant que nombre ou nombre flottant.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    isNan() a toujours fonctionné correctement avec des chaines, c'est même son seul intérêt puisqu'il existe également la constante NaN.

    Sinon il est possible de faire le contrôle avec une expression régulière.

  6. #6
    Membre habitué
    Femme Profil pro
    Infographiste
    Inscrit en
    Septembre 2014
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Infographiste
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 12
    Par défaut
    J'ai oublié de vous dire, c'est mon 1er formulaire donc je suis novice et vous parlez un peu en chinois....

    Je teste avec Safari 7.0
    Quand j'avais moins de champs, ça fonctionnais mais depuis que j'en ai rajouté ça ne va plus, même si je complète avec des chiffres le formulaire, il me note le message d'erreur.

    Possible de faire avec une expression régulière ??? C'est mieux ou moins bien ???
    Et comment ça marche en gros ???

    Merci d'avance

Discussions similaires

  1. Vérifier si des champs sont égaux
    Par pep972 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/05/2008, 15h15
  2. Vérifier si des champs sont vides
    Par Colbix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/08/2007, 19h36
  3. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 00h05
  4. Between avec des champs de tables
    Par talggir dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/05/2005, 09h11
  5. [word] Generer un document avec des champs
    Par webbulls dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/04/2004, 10h47

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