Je mets -1 pour le titre de topic qui sert à rien, et parce que c'est JavaScript, pas Java.
Pour ton problème, comment souvent, il y a plusieurs façons de faire. Une est simple mais fastidieuse, car il faut rajouter un attribut dans le code HTML de chaque bouton radio. Une autre, reposant sur la délégation d'évènements, serait plus élégante mais plus complexe. Je te propose la première.
Je commence par créer une fonction qui va désactiver tous les boutons de même nom :
1 2 3 4 5 6 7
| function desactiver( nom ) {
var boutons = document.getElementsByName(nom);
var length = boutons.length;
for (var i = 0; i < length; i++) {
boutons[i].disabled = true;
}
} |
Ensuite, il faudra rajouter un appel à cette fonction sur chaque bouton radio :
<input type="radio" ... onclick="desactiver(this.name);" />
Si tu te sens d'attaque pour la solution « plus élégante », y'a qu'à demander
Autre chose : je sais, de ma propre expérience, que le e-learning se soucie parfois peu de la sécurité des questionnaires. Mais il faut que tu saches qu'une vérification côté client n'est pas suffisante. Par exemple, avec une console JavaScript (il y en a dans tous les navigateurs actuels), il suffit de taper un tout petit bout de code pour casser la protection que je viens de te donner.
L'idéal serait de faire une requête auprès du serveur (avec ou sans Ajax) quand l'utilisateur propose une réponse, et de s'assurer, côté serveur, qu'il ne pourra pas proposer une autre réponse par la suite.
Partager