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érification formulaire champ liste menu


Sujet :

JavaScript

  1. #1
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut vérification formulaire champ liste menu
    Bonjour
    je veux vérifier lors de l'envoi de mon formulaire que tous les champs sont renseignés. Mais j'ai un problème concernant le champ select de ma liste menu, c'est le seul qui ne fonctionne pas, le script suivant ne prend pas en compte ce champ Sous menu.
    le script:
    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
    <script language="javascript" type="text/javascript">
    function check_input(){
    var message_alert = "";
    for(var i = 0; i < window.document.forms[0].length ; i++) {
    var rechRapide = window.document.forms[0].elements[i].value;
    var nom_champ = window.document.forms[0].elements[i].name;
    window.document.forms[0].elements[i].style.backgroundColor = "#FFFFFF";
    if(rechRapide == "") {
    window.document.forms[0].elements[i].focus();
    window.document.forms[0].elements[i].style.backgroundColor = "#CCCCCC";
    message_alert +=" Veuillez remplir le champ " + nom_champ +"\n";
    }
    }
    if (message_alert == "") {
    return true;
    } else {
    message_alert = "Informations omises dans le formulaire : \n" + message_alert;
    alert(message_alert);
    return false;
    }
    } 
    </script>
    le formulaire:
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <form action="" method="post" enctype="multipart/form-data" name="form1" onSubmit = "var resultat = check_input(); return resultat;">
                    <table width="644" height="305" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933">
                      <tr>
                        <td width="622"><div align="center">
                            <table width="622" border="0" cellspacing="0" cellpadding="5">
                              <tr>
                                <td width="202"><div align="right"></div></td>
                                <td width="467"><div align="left"></div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Titre  : </div></td>
                                <td><div align="left">
                                    <input name="titre" type="text" id="titre">
                                </div></td>
                              </tr>
                              <tr>
                                <td><div align="right"></div></td>
                                <td><div align="left"></div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Description : </div></td>
                                <td><div align="left">
                                    <textarea name="description" cols="40" id="description"></textarea>
                                </div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Prix : </div></td>
                                <td><div align="left">
                                    <input name="prix" type="text" id="prix" size="10">
                                    &nbsp;&euro;&nbsp;&nbsp;&nbsp;le chiffre sans le sigle &euro; </div></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td><div align="left">Sous menu : </div></td>
                                <td><div align="left">
                                    <select name="ref_menu" id="ref_menu">
                                      <?php
    do {  
    ?>
                                      <option value="<?php echo $row_rsSelectTheme['id_menu']?>"><?php echo $row_rsSelectTheme['id_menu_dir']; ?> - <?php echo $row_rsSelectTheme['item_menu']?></option>
                                      <?php
    } 
    while ($row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme));
           $rows = mysql_num_rows($rsSelectTheme);
           if($rows > 0) 
                  {
              mysql_data_seek($rsSelectTheme, 0);
                  $row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme);
              }
    ?>
                                    </select>
                                &nbsp;&nbsp;<span class="red">&nbsp;SOUS MENU OBLIGATOIRE</span></div></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td><div align="left">Image : </div></td>
                                <td><div align="left">
                                    <input name="photo" type="file" id="photo">
                                </div></td>
                              </tr>
                              <tr>
                                <td colspan="2">&nbsp;</td>
                              </tr>
                              <tr>
                                <td colspan="2"><div align="right"></div>
                                    <div align="center">
                                      <input type="submit" name="Submit" value="AJOUTER">
                                      <input name="ajoutArticle" type="hidden" id="ajoutArticle" value="ok">
                                  </div></td>
                              </tr>
                            </table>
                        </div></td>
                      </tr>
                    </table>
                    <p>&nbsp;</p>
                    </form>
    est-ce un champ particulier qui demande un code particulier, et avez-vous une idée pour résoudre mon problème. Merci d'avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonjour,
    on voit dans ton code PHP, merci de mettre le HTML généré, que la première OPTION du SELECT a une value, donc le test ne rejette pas le SELECT.

  3. #3
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    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
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <form action="" method="post" enctype="multipart/form-data" name="form1" onSubmit = "var resultat = check_input(); return resultat;">
                    <table width="644" height="305" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933">
                      <tr>
                        <td width="622"><div align="center">
                            <table width="622" border="0" cellspacing="0" cellpadding="5">
                              <tr>
                                <td width="202"><div align="right"></div></td>
                                <td width="467"><div align="left"></div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Titre  : </div></td>
                                <td><div align="left">
                                    <input name="titre" type="text" id="titre">
                                </div></td>
                              </tr>
                              <tr>
                                <td><div align="right"></div></td>
                                <td><div align="left"></div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Description : </div></td>
                                <td><div align="left">
                                    <textarea name="description" cols="40" id="description"></textarea>
                                </div></td>
                              </tr>
                              <tr>
                                <td><div align="left">Prix : </div></td>
                                <td><div align="left">
                                    <input name="prix" type="text" id="prix" size="10">
                                    &nbsp;&euro;&nbsp;&nbsp;&nbsp;le chiffre sans le sigle &euro; </div></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td><div align="left">Sous menu : </div></td>
                                <td><div align="left">
                                    <select name="ref_menu" id="ref_menu">
                                                                        <option value="9">1 - sol moderne</option>
                                                                        <option value="10">1 - sol contemporain</option>
                                                                        <option value="11">2 - extérieur</option>
                                                                      </select>
                                &nbsp;&nbsp;<span class="red">&nbsp;SOUS MENU OBLIGATOIRE</span></div></td>
                              </tr>
                              <tr>
                                <td>&nbsp;</td>
                                <td>&nbsp;</td>
                              </tr>
                              <tr>
                                <td><div align="left">Image : </div></td>
                                <td><div align="left">
                                    <input name="photo" type="file" id="photo">
                                </div></td>
                              </tr>
                              <tr>
                                <td colspan="2">&nbsp;</td>
                              </tr>
                              <tr>
                                <td colspan="2"><div align="right"></div>
                                    <div align="center">
                                      <input type="submit" name="Submit" value="AJOUTER">
                                      <input name="ajoutArticle" type="hidden" id="ajoutArticle" value="ok">
                                  </div></td>
                              </tr>
                            </table>
                        </div></td>
                      </tr>
                    </table>
                    <p>&nbsp;</p>
                    </form>

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    cela confirme ce je te disais, il te faut une OPTION sans value dans ton SELECT pour forcer la sélection.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    oui, le champ est bien rempli , la vérif doit se faire au niveau du clique sur un des menus de la liste par le visiteur, sinon message d'erreur. je sais pas comment m'y prendre. As-tu une idée?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    cela confirme ce je te disais, il te faut une OPTION sans value dans ton SELECT pour forcer la sélection.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="ref_menu" id="ref_menu">
      <option>Type de sol</option>
      <option value="9">1 - sol moderne</option>
      <option value="10">1 - sol contemporain</option>
      <option value="11">2 - extérieur</option>
    </select>

  7. #7
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    Merci de ta participation
    oui c'est bon, je suis en train de chercher , comment mentionner dans le message d'erreur, Veuillez remplir le champ Sous menu au lieu de Veuillez remplir le champ ref_menu.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    peux mettre un attribut title à tes éléments et afficher celui ci plutôt que le name.

    Au passage dans ta fonction il serait préférable de remplacer window.document.forms[0] par une variable locale
    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
    function check_input(){
      var message_alert = "";
      var oForm = window.document.forms[0];
      for(var i = 0; i < oForm.length ; i++) {
        var rechRapide = oForm.elements[i].value;
        var nom_champ  = oForm.elements[i].title || oForm.elements[i].name;
        oForm.elements[i].style.backgroundColor = "#FFFFFF";
        if(rechRapide == "") {
          oForm.elements[i].focus();
          oForm.elements[i].style.backgroundColor = "#CCCCCC";
          message_alert +=" Veuillez remplir le champ " + nom_champ +"\n";
        }
      }
      if( message_alert == ""){
        return true;
      }
      else{
        message_alert = "Informations omises dans le formulaire : \n" + message_alert;
        alert(message_alert);
        return false;
      }
    }
    c'est encore "cleannable"

  9. #9
    Membre actif
    Inscrit en
    Octobre 2006
    Messages
    368
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 368
    Points : 289
    Points
    289
    Par défaut
    title, bonne idée
    merci pour ton code et merci d'avoir passer du temps à résoudre mon problème.

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

Discussions similaires

  1. Vérification formulaire champ
    Par linuxien_62 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 01/03/2013, 10h46
  2. Réponses: 4
    Dernier message: 09/01/2007, 22h28
  3. pbm vérification des champs d'un formulaire
    Par mariafan dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/12/2006, 13h35
  4. Vérification des champs d'un sous-formulaire
    Par antoine46 dans le forum Access
    Réponses: 5
    Dernier message: 10/08/2006, 11h55
  5. formulaire: champ texte + liste deroulante
    Par mat21 dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 10h01

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