Bonjour,
Je genere un formulaire html, un des champs demande le nombre de couleur dans une liste deroulante alant de 1 à 4.
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>
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
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;
 
}
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
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; }
}
Les tests de remplissage du formulaire fonctionnent tres bien sauf sur les champs nom_couleurX. Pourriez vous m'aider à comprendre mon erreur ?
Merci