OVH Cloud OVH Cloud

Indirections sur nom de champ de formulaire

1 réponse
Avatar
denis
Bonjour,

Voilà le problème..

Un formulaire en HTML incluant :

champ R1
champ R2
champ R3
etc..

Comme je suis un gros fainéant, je souhaite faire des indirections (on
appelle ca comme ca dans d'autres langages de prog)
sur les noms de ces champs dans une boucle javascript, sachat qu'ils
commencent tous par la lettre R et que la suite correspond à
la valeur de i de la boucle ?

pour l'instant, j'ai ce code :

if (document.formq.R1.selectedIndex==1){
document.getElementById('REP1').value=formq.R1.options[formq.R1.selectedIndex].text;
justes++
}
if (document.formq.R2.selectedIndex==1){
document.getElementById('REP2').value=formq.R2.options[formq.R2.selectedIndex].text;
justes++
}

etc...

Et je voudrais arriver à cela... (les ... correspondants à la valeur de i)

for (i=1;i<=nbchamp;i++) {
if (document.formq.R.... .selectedIndex==1){
document.getElementById('REP...').value=formq.R....options[formq.R....selectedIndex].text;
justes++
}
}


Merci par avance de vos conseils

Denis

1 réponse

Avatar
BMR
Bonjour,

Voilà le problème..

Un formulaire en HTML incluant :

champ R1
champ R2
champ R3
etc..

Comme je suis un gros fainéant, je souhaite faire des indirections (on
appelle ca comme ca dans d'autres langages de prog)
sur les noms de ces champs dans une boucle javascript, sachat qu'ils
commencent tous par la lettre R et que la suite correspond à
la valeur de i de la boucle ?

pour l'instant, j'ai ce code :

if (document.formq.R1.selectedIndex==1){
document.getElementById('REP1').value=formq.R1.options[formq.R1.selectedIndex].text;
justes++
}
if (document.formq.R2.selectedIndex==1){
document.getElementById('REP2').value=formq.R2.options[formq.R2.selectedIndex].text;
justes++
}

etc...

Et je voudrais arriver à cela... (les ... correspondants à la valeur de i)

for (i=1;i<=nbchamp;i++) {
if (document.formq.R.... .selectedIndex==1){
document.getElementById('REP...').value=formq.R....options[formq.R....selectedIndex].text;
justes++
}
}


Merci par avance de vos conseils

Denis




Il faudrait déjà "soulager" le code pour ne pas avoir à répéter
document.formq, grâce à l'opérateur with. Puis utiliser la collection
elements :

with (document.formq) {
for (i=1;i<=nbchamp;i++) {
if (elements['R'+i].selectedIndex==1){

document.getElementById('REP'+i).value=elements['R'+i].options[elements['R'+i].selectedIndex].text;
justes++
}
}
}

Ce serait plus simple avec le "value" :
document.getElementById('REP'+i).value=elements['R'+i].value;

BMR