Bonjour,
Je genere un formulaire html, un des champs demande le nombre de couleur dans une liste deroulante alant de 1 à 4.
En fonction de ce choix il y a autant de zone texte intitulé nom_couleurX (ou X est une incrementation de 1 à 4) générées par un code javascipt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Nombre de couleur : <select name="nombre_couleur" id="nombre_couleur" OnChange="ajoutChamp()" > <option value="0" selected="selected">Nombre de couleur...</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> </select> <br /> <br /> <div id = "namecolor"></div>
Mon probleme est que je cherche à vérifier que certains champs de mon formulaire soient bien renseignés. Je fais cela par une fonction javascript via un OnClick du bouton valider :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function ajoutChamp(){ index = document.ajoutCliche.nombre_couleur.selectedIndex; code = ""; for (i=0;i<=(index - 1);i++) { code += "Nom Couleur " + (i+1) +" : <input type=\"text\" name=\"nom_couleur" + i + " id=\"nom_couleur" + i +"\" />\n"; } //alert('' + code); document.getElementById("namecolor").innerHTML = code; }
Les tests de remplissage du formulaire fonctionnent tres bien sauf sur les champs nom_couleurX. Pourriez vous m'aider à comprendre mon erreur ?
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 function testform(){ var msg = "Merci de choisir :\n" ; lgMsg = msg.length ; index = document.ajoutCliche.nombre_couleur.selectedIndex; (...) if(document.getElementById("nombre_couleur").value == 0) { msg += "> un nombre de couleur\n"; } for (i=0;i<=(index - 1);i++) { if(document.getElementById("nom_couleur" + i + "").value == 0) { msg += "> un nom de couleur " + (i+1) + "\n"; } } //si le message d'erreur ne recoit pas de concatenation en plus alors c'est qu'il n'y a pas d'erreur, le formulaire peut donc etre transmis if ( msg.length > lgMsg ) { alert(msg) ; return false; } else { return true; } }
Merci
Partager