dégriser un champ : deux arguments dans la fonction
Bonjour !
Bon j'avais déjà posé la question qui avait été résolu voilà ce qui marche :
Code:
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> |
Donc ceci marche trés bien mais maintenant je sollicite votre aide car j'aimerai passer deux arguments à ma fonction check.
Voilà ma version de départ:
Code:
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> |
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 !
comme je l'avais fait au départ pour voir si ma démarche était bonne exemple:
Code:
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 = "";
}
} |
Donc ca ne marche pas :D : je me suis dis que c'était peut le concat du nom du champ. J'ai explicitement concaténé:
Code:
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 = "";
}
} |
mais ca ne marche toujours pas. Auriez vous une idée s'il vous plait ?
Merci d'avance !