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 :

Validation champ number et case à cocher


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Points : 59
    Points
    59
    Par défaut Validation champ number et case à cocher
    Bonjour,

    Je ne parviens pas à voir ou j'ai fais une erreur dans la validation pour le champs number et la case à cocher.

    Avez vous une idée ?

    https://codepen.io/aaashpnt-the-sans/pen/wvbyrRz

    Nom : Sans titre.jpg
Affichages : 93
Taille : 82,0 Ko

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 442
    Points : 4 945
    Points
    4 945
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (name.length < 3) {
         res.json({ 'alert': 'name must be 3 letters long' });
    } else if (!email.length) {
         res.json({
                'alert': 'enter your email'
         });
    } else if (password.length < 8) {
         res.json({ 'alert': 'password must be 8 letters long' });
    } else if (!Number(number) || number.length < 10) {
         res.json({ 'alert': 'invalid number, please enter valid one' });
     }
    Avec ce code, si par exemple les variables name et number sont invalides, seulement le bloc de name qui sera executé, car les instructions de else if sont successives.

    La même chose pour cette partie de code aussi
    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
    if (fullname.value.length < 3) {
            showFormError('name must be 3 letters long');
        } else if (!email.value.length) {
            showFormError('enter your email');
        } else if (password.value.length < 8) {
            showFormError('password must be 8 letters long');
        } else if (!Number(number) || number.value.length < 10) {
            showFormError('invalid number, please enter valid one');
        } else if (!tac.checked) {
            showFormError('you must agree to our terms and condition');
        } else {
            // submit form
            loader.style.display = 'block';
            sendData('/signup', {
                name: fullname.value,
                email: email.value,
                password: password.value,
                number: number.value,
                tac: tac.checked
            })
        }
    Utilisez seulement des if au lieu de else if

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Points : 59
    Points
    59
    Par défaut
    Super sa fonctionne, je ne dois pas avoir un else if partout ?

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 442
    Points : 4 945
    Points
    4 945
    Par défaut
    Bonjour,

    Pour ce cas oui, vous devez utiliser seulement des if, car vous essayez de récupérer plusieurs erreurs à la fois, pas seulement une.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 887
    Points
    44 887
    Par défaut
    Bonjour,
    Citation Envoyé par cdevl37
    Super sa fonctionne...
    je serais curieux de voir cela car avec cette ligne appartenet à formBtn.addEventListener('click', () => { :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    } else if (!Number(number) || number.value.length < 10) {
    on entrera toujours dans la condition, en effet !Number(un_HTMLElement) sera invariablement à true.

  6. #6
    Membre du Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Points : 59
    Points
    59
    Par défaut
    en effet et quel est la solution ?

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 887
    Points
    44 887
    Par défaut
    La plus simple du monde, faire le test sur la valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    } else if (!Number(number.value) || number.value.length < 10) {

  8. #8
    Membre du Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Points : 59
    Points
    59
    Par défaut
    car j'ai deux fichier ou je fais les testes, je dois le faire que dans le form.js ? ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    } else if (!Number(number.value) || number.value.length < 10) {
    forms.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    // form validation
        if (fullname.value.length < 3) {
            showFormError('name must be 3 letters long');
        } if (!email.value.length) {
            showFormError('enter your email');
        } if (password.value.length < 8) {
            showFormError('password must be 8 letters long');
        } if (!Number(number) || number.value.length < 10) {
            showFormError('invalid number, please enter valid one');
        } if (!tac.checked) {
            showFormError('you must agree to our terms and condition');
        } else {
    server.js

    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
     
    // form validation
        if (name.length < 3) {
            res.json({ 'alert': 'name must be 3 letters long' });
        } if (!email.length) {
            res.json({
                'alert': 'enter your email'
            });
        } if (password.length < 8) {
            res.json({ 'alert': 'password must be 8 letters long' });
        } if (!Number(number) || number.length < 10) {
            res.json({ 'alert': 'invalid number, please enter valid one' });
        } if (!tac) {
            res.json({ 'alert': 'you must agree to our terms and condition' });
        } else {

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 887
    Points
    44 887
    Par défaut
    car j'ai deux fichier ou je fais les testes, je dois le faire que dans le form.js ?
    avec un minimum de réflexion je pense que tu aurais trouvé
    dans ta partie serveur.js tu utilises directement les valeurs que tu révupères ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const { name, email, password, number, tac } = req.body;
    dans ta partie form.js tu récupères les élément du DOM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    formBtn.addEventListener('click', () => {
        let fullname = document.querySelector('#name');
        let email = document.querySelector('#email');
        let password = document.querySelector('#password');
        let number = document.querySelector('#number');
        let tac = document.querySelector('#tc');
        // ....
    il aurait été mieux d'avoir la même philosophie de traitement, à savoir à partir des valeurs, et d'écrire par exemle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    formBtn.addEventListener('click', () => {
        let fullname = document.querySelector('#name').value;
        let email = document.querySelector('#email').value;
        let password = document.querySelector('#password').value;
        let number = document.querySelector('#number').value;
        let tac = document.querySelector('#tc').checked;
        // ....

  10. #10
    Membre du Club
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Points : 59
    Points
    59
    Par défaut
    Merci a vous de votre aide.

    J'ai enfin réussi, par contre j'ai un autre soucis avec un autre formulaire ou je ne parviens pas a trouver mon erreur, quand je clic sur "get you account" j'ai le loader qui tourne en boucle.

    Avez vous une idée ?

    https://codepen.io/aaashpnt-the-sans/pen/wvbyrRz

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 102
    Points : 44 887
    Points
    44 887
    Par défaut
    Citation Envoyé par cdevl37
    J'ai enfin réussi, par contre j'ai un autre soucis ...
    que dire si ce n'est :
    Une discussion = une question

    Poser plusieurs questions dans un seul et même fil nuit grandement à la qualité du forum : notamment, lors d'une recherche, tout le contenu du fil n'est pas indiqué dans le titre, elle devient donc plus ardue.

    Notre but est de maintenir une base de connaissances facile à exploiter par tous les visiteurs, utilisable par tous. Vous avez pu bénéficier de ce forum en posant vos questions, laissez la possibilité aux suivants de bénéficier des réponses en leur offrant un sujet moins dispersé.

Discussions similaires

  1. test et validation de votre programme!!!
    Par l'indien dans le forum C
    Réponses: 8
    Dernier message: 25/06/2003, 15h43
  2. validation d'un XML schema
    Par nicolas_jf dans le forum Valider
    Réponses: 2
    Dernier message: 05/05/2003, 11h25
  3. est ce un XSchema Valide?
    Par Slash dans le forum Valider
    Réponses: 4
    Dernier message: 06/03/2003, 14h01
  4. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54
  5. [VB6] Evenement validate
    Par grosjej dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 05/09/2002, 15h46

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