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 :

Test des champs vide d'un formulaire !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 24
    Par défaut Test des champs vide d'un formulaire !
    Bonjour à tous !

    Voici un fragment de 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
     
    <form method="POST" action="traiter_ajout.php" name="form_ajout_question" onsubmit="return verif_vides(form_ajout_question)">
        <table>				
    	<tr>
    	     <td>La question : </td><td><input type="text" name="question" /></td>
    	</tr>
     
    	<tr>
    	     <td>La bonne réponse : </td><td><input type="text" name="bonne_rep" /></td>
    	</tr>
     
    	<?php                                                                 $_SESSION['nbreponse']=$_GET['nb_reponse'];
                  for($i=0; $i<$_SESSION['nbreponse']; $i++ ){
                     $j=$i+1;
                     echo "<tr>";
                     echo "<td>Mauvaise réponse n°$j : </td>";
                     echo "<td><input type='text' name='mauvaise[".$j."]'></td>";
                     echo "</tr>";
                   }
            ?>
        </table>
        <input type="submit" name="questionnaire" value="Valider la question">
    </form>

    Et avec le code suivant en javascript, je m'assure que tous les champs soient remplis !

    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
    <script language="javascript" type text/javascript>
    function verif_vides(formulaire) {
     
    if(formulaire.question.value.length < 1) {
    alert('Le champ question doit-être rempli !');
    formulaire.question.focus();
    return false;
    }
     
    if(formulaire.bonne_rep.value.length < 1) {
    alert('Le champ bonne réponse doit-être rempli !');
    formulaire.bonne_rep.focus();
    return false;
    }
     
    if(formulaire.mauvaise[1].value.length < 1) {
    alert('Le champ mauvaise réponse n°1 doit-être rempli !');
    formulaire.mauvaise[1].focus();
    return false;
    }
     
    if(formulaire.mauvaise[2].value.length < 1) {
    alert('Le champ mauvaise réponse n°1 doit-être rempli !');
    formulaire.mauvaise[2].focus();
    return false;
    }
     
     
    return true;
    }
    </script>

    Le problème que je rencontre car je ne connais pas du tout le javascript, c'est que je n'arrive pas à tester mes variable "mauvaise[xxx]"!

    Sachant que leurs nombres varient : il y a au minimum mauvaise[1], et au maximum mauvaise[4].

    ex : des fois il ya aura les variables mauvaise[1] et mauvaise[2]
    et une autre fois, il y aura les variables mauvaise[1], mauvaise[2], mauvaise[3],...


    En fait le principe est que sur une premiere page l'utilisateur indique le nombre de champs "mauvaises réponses" il veut, et la page d'après propose le formulaire.

    Et c'est ce formulaire que je souhaiterai tester !
    Ca marche pour les champs question et bonne reponse, mais pour les champs mauvaise réponse (mauvaise[xxx]) ça ne fonctionne pas (ça ignore qu'il soit vide), je ne vois pas comment faire.


    Merci pour votre aide et à bientôt !!!

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Première remarque:
    Adopte une syntaxe qui t'éviteras des problèmes dans l'avenir




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.fomrs['formulaire'].elements['mauvaise']
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementsByName['mauvaise']

    tu recupères donc une collection d'objets :
    et tu la scannes dans une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var colLen=document.getElementsByName['mauvaise'].length
     for (i=0;i<colLoen;i++){
          alert(document.getElementsByName['mauvaise'][i].value)
    }
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 24
    Par défaut
    je ne comprend pas trop :

    voici ce que j'ai mis dans mon code javascript à la place de ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    (...)
     
    if(formulaire.mauvaise[1].value.length < 1){
       alert('Le champ mauvaise réponse n°1 doit-être rempli !');
       formulaire.mauvaise[1].focus();
       return false;
    }
     
    (...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    (...)
     
    var colLen=document.fomrs['formulaire'].elements['mauvaise'].value).length
     
    for (i=0;i<colLoen;i++){
       if(document.fomrs['formulaire'].elements['mauvaise'][i].value).length < 1) {
          alert('Le champ mauvaise réponse n°'i' doit-être rempli !');
          document.fomrs['formulaire'].elements['mauvaise'][i].focus();
          return false;
       }
    }
     
    (...)
    j'ai aussi essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    (...)
     
    var colLen=document.getElementsByName['mauvaise'].length
     
    for (i=0;i<colLoen;i++){
       if(document.getElementsByName['mauvaise'][i].length < 1) {
          alert('Le champ mauvaise réponse n°'i' doit-être rempli !');
          document.getElementsByName['mauvaise'][i].focus();
          return false;
       }
    }
     
    (...)
    Je pense que je n'utilise pas bien ce que tu m'as donné car lorsque mais champs mauvaise[xx] ne sont pas remplis, le formulaire est quand même envoyé avec les champs vide !!!

    Merci pour l'aide que tu m'apporte

    A bientôt !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    colLen != colLoen
    desolé pour la faute de frappe ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.fomrs['formulaire']
    Qui était en fait forms. Copier/coller le code qu'on vous donne c'est dément, mais le lire, c'est plus intelligent.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 24
    Par défaut
    en effet j'avais lu forms et non fomrs !
    je ferai plus attention la prochaine fois !

    je vais corrigé ça tout de suite !

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/01/2015, 09h02
  2. [AC-2010] Controle des champs vides dans un formulaire
    Par prosper02 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/07/2013, 00h04
  3. formulaire access sur des champs vides
    Par qmike dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/05/2009, 10h20
  4. soumettre un formulaire avec des champs vides
    Par pesti dans le forum GWT et Vaadin
    Réponses: 11
    Dernier message: 17/03/2009, 15h04
  5. test des champs d'un formulaire
    Par msahmi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/02/2008, 13h46

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