Bonjour !
Bon j'avais déjà posé la question qui avait été résolu voilà ce qui marche :
Donc ceci marche trés bien mais maintenant je sollicite votre aide car j'aimerai passer deux arguments à ma fonction check.
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 function checkNomSite(idx){ if ( document.forms[0].elements["reponse"+idx].value == "Oui" ) document.forms[0].elements["sitePrelev"+idx].disabled = false; else { document.forms[0].elements["sitePrelev"+idx].disabled = true; document.forms[0].elements["sitePrelev"+idx].value = ""; } } <tr> <td>Actualiser le nom du Site :</td> <td> <SELECT name="reponse<%=i%>" onchange="checkNomSite(<%=i%>)"> <OPTION value="" selected></OPTION> <OPTION value="Oui">Oui</OPTION> <OPTION value="Non">Non</OPTION> </SELECT></td> <td><input type="text" name="sitePrelev<%=i%>" value="" size="25" disabled/></td> </tr>
Voilà ma version de départ:
Il est clair que ca ne sert à rien de faire quatres fonctions différentes (car 4 lettre a, b, c, d) qui ne changeraient que d'une lettre !
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 function checkIndice(idx,lettre){ if ( document.forms[0].elements[lettre+idx].value == "Autre" ) document.forms[0].elements["input"+lettre+idx].disabled = false; else { document.forms[0].elements["input"+lettre+idx].disabled = true; document.forms[0].elements["input"+lettre+idx].value = ""; } } String[] listMicroOrg= { .... ellipse ...} String[] listIndice= {"a","b","c","d"}; for (int j=0; j<listIndice.length; j++) { int k=j+1; %> <tr> <td>référencé sous indice <b><%= listIndice[j] %></b>:</td> <td> <SELECT name="<%= listIndice[j] %><%=k%>" onchange="checkIndice(<%=k%>,<%=listIndice[j]%>)"> <OPTION value="" selected></OPTION> <%for (int i=0; i<listMicroOrg.length; i++) {%> <OPTION value="<%= listMicroOrg[i] %>"><%= listMicroOrg[i] %></OPTION> <%}%> <OPTION value="Autre">Autre</OPTION> </SELECT></td> </tr> <tr> <td><input type="text" name="input<%= listIndice[j] %><%=k%>" value="" size="25" disabled/></td> </tr>
comme je l'avais fait au départ pour voir si ma démarche était bonne exemple:
Donc ca ne marche pas : je me suis dis que c'était peut le concat du nom du champ. J'ai explicitement concaténé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function checkIndiced(idx){ if ( document.forms[0].elements["d"+idx].value == "Autre" ) document.forms[0].elements["inputd"+idx].disabled = false; else { document.forms[0].elements["inputd"+idx].disabled = true; document.forms[0].elements["inputd"+idx].value = ""; } }
mais ca ne marche toujours pas. Auriez vous une idée s'il vous plait ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 function checkIndice(idx,lettre){ var nomchamp = lettre.concat(idx); if ( document.forms[0].elements[nomchamp].value == "Autre" ) document.forms[0].elements["input"+nomchamp].disabled = false; else { document.forms[0].elements["input"+nomchamp].disabled = true; document.forms[0].elements["input"+nomchamp].value = ""; } }
Merci d'avance !
Partager