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 :

if dans une boucle (ou l'inverse)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut if dans une boucle (ou l'inverse)
    Bonjour les gens

    Voilà j'ai voulu réaliser un script qui examine ligne par ligne le contenu des champs d'un formulaire en forme de tableau.
    En gros:
    - avoir au moins tous les champs de la première ligne remplis (ça ça fonctionne )
    - si, pour n'importe quelle autre ligne, un champ est rempli, les autres de cette même ligne doivent l'être aussi (ça ça fonctionne pas )

    Voici ce qui m'empêche de dormir :

    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
    function verifForm(formulaire)
    {
    	if ((formulaire.p1.value == "")||(formulaire.m1.value == "")||(formulaire.c1.value == "")||(formulaire.d1.value == "")||(formulaire.t1.value == ""))
    	{
    		alert("Vous devez au moins remplir la première ligne!")
    	}
    	else
    	{
    		i=1;
    		while (i<10)
    			{
    				if (formulaire.p[i].value == "")
    					{
    						if ((formulaire.m[i].value != "")||(formulaire.c[i].value != "")||(formulaire.d[i].value != "")||(formulaire.t[i].value != ""))
    						{
    							alert("Veuillez remplir tous les champs d'une même ligne!");
    							break;
    						}
    						else
    						{
    							i++;
    							continue;
    						}
    					}
    				else if ((formulaire.m[i].value == "")||(formulaire.c[i].value == "")||(formulaire.d[i].value == "")||(formulaire.t[i].value == ""))
    					{
    						alert("Veuillez remplir tous les champs d'une même ligne!");
    						break;
    					}
    					else
    					{
    						i++;
    						continue;
    					}
    			}	
    		formulaire.submit()
    	}
    }
    Une partie du formulaire html:

    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
     
    <table width="800" border="0" bgcolor="black">
    <caption><h1>Formulaire</h1></caption>
    <tr align="center" BGCOLOR="yellow">
    <th width="20%">Colonne1</th>
    <th width="20%">Colonne2</th>
    <th width="20%">Colonne3</th>
    <th width="20%">Colonne4</th>
    <th width="20%">Colonne5</th>
    </tr>
    <tr align="center" BGCOLOR="#EEEE00"> /*Cette ligne DU TABLEAU apparait
    encore 8 fois, où on incrément
    chaque numéro des noms
    des champs à chaque fois*/
    <td><input type="text" name="p1"></td>
    <td><input type="text" name="m1"></td>
    <td><input type="text" name="c1"></td>
    <td><input type="text" name="d1"></td>
    <td><input type="text" name="t1"></td>
    </tr>
     
    ...
     
    <tr align="center" BGCOLOR="#CDCD00">
    <td colspan="5">
    <input type="button" value="Retour à l'accueil" OnClick="redirecAcceuil()">&nbsp; &nbsp;
    <input type="button" value="Valider" onClick="verifForm(this.form)">
    </td></tr></table>
    Alors, z'en pensez quoi?

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    EDIT : Oups ... sensible le bouton "enregistrer"

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par TokeinatorWrecK
    Alors, z'en pensez quoi?
    d'abord que les balises [CODE ][/CODE ] rendrait ton post + lisible.
    Ensuite que ta syntaxe pour accéder aux objets n'est pas bonne non plus (en restant poli )
    Enfin, que sans le html associé, ça serait aléatoire de tenter une correction.

    A+

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    Je les trouvées pas ces balises ^^

    C'est quoi de mauvais dans ma syntaxe d'accés aux objets?

  5. #5
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Parce qu'on utilise pas le name pour accèder à des éléments

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Shinuza
    Parce qu'on utilise pas le name pour accèder à des éléments
    Et que même, en admettant, la syntaxe correct serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['formulaire'].elements['p1'].value
    Mais l'utilisation des ID est effectivement largement préférable

    Au fait, pour les balises [code ], le bouton est le "#" (à droite de tous les autres).

    A+

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6
    Par défaut
    Bon après les quelques réglages qui ont suivis suite à vos remarques, et ben ça change rien


    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
    function verifForm(formulaire)
    {
    	if ((document.forms['formulaire'].elements['p1'].value == "")||(document.forms['formulaire'].elements['m1'].value == "")||(document.forms['formulaire'].elements['c1'].value == "")||(document.forms['formulaire'].elements['d1'].value == "")||(document.forms['formulaire'].elements['t1'].value == ""))
    	{
    		alert("Vous devez au moins remplir la première ligne!")
    	}
    	else
    	{
    		i=1;
    		while (i<10)
    			{
    				if (document.forms['formulaire'].elements['p[i]'].value == "")
    					{
    						if ((document.forms['formulaire'].elements['m[i]'].value != "")||(document.forms['formulaire'].elements['c[i]'].value != "")||(document.forms['formulaire'].elements['d[i]'].value != "")||(document.forms['formulaire'].elements['t[i]'].value != ""))
    						{
    							alert("Veuillez remplir tous les champs d'une même ligne!");
    							break;
    						}
    						else
    						{
    							i++;
    							continue;
    						}
    					}
    				else if ((document.forms['formulaire'].elements['m[i]'].value == "")||(document.forms['formulaire'].elements['c[i]'].value == "")||(document.forms['formulaire'].elements['d[i]'].value == "")||(document.forms['formulaire'].elements['t[i]'].value == ""))
    					{
    						alert("Veuillez remplir tous les champs d'une même ligne!");
    						break;
    					}
    					else
    					{
    						i++;
    						continue;
    					}
    			}	
    		formulaire.submit()
    	}
    }
    Je me demande si ça viendrais pas de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['formulaire'].elements['m[i]'].value
    le "i" (compteur) est surement pas interprété de la façon dont je voudrais

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

Discussions similaires

  1. [langage] incrementation de variable dans une boucle
    Par mimilou dans le forum Langage
    Réponses: 15
    Dernier message: 16/04/2004, 13h23
  2. Problème avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & réseau
    Réponses: 3
    Dernier message: 07/04/2004, 10h19
  3. swf dans une boucle asp
    Par Chucky69 dans le forum Flash
    Réponses: 11
    Dernier message: 10/02/2004, 17h07
  4. [Vb.net] Indexé un objet crée dans une boucle
    Par picpic dans le forum Windows Forms
    Réponses: 10
    Dernier message: 17/12/2003, 14h37
  5. Pause dans une boucle
    Par HT dans le forum Langage
    Réponses: 4
    Dernier message: 03/06/2003, 08h52

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