La problématique est toute bête, on a un groupe de boutons radio, admettons « oui » et « non », et on veut imposer la valeur cochée avec jquery validate.
Exemple :
<input type='radio' name='truc' id='truc_oui' value='oui' /> Oui
<input type='radio' name='truc' id='truc_non' value='non' /> Non
Je n’ai pas trouvé de solution toute faire pour ça, et les recherches sur le net ont mené à une fonction buggée qui vérifie la valeur du champ, un truc du genre :
jQuery.validator.addMethod('correctAnswer', function(value, element, params) {
return this.optional(element) || value == params;
}, 'Select the correct answer to move on.');
Le problème étant que dans ce cas, le « value » passé à la fonction est systématiquement la première value du formulaire pour ce groupe de boutons radio, et non pas la valeur cochée.
J’ai donc créé une fonction équivalente mais non buggée, si ca peut vous servir 🙂
jQuery.validator.addMethod('correctAnswer', function(value, element, params) {
return $('input[type=radio][name='+element.name+']:checked').val()==params;
}, 'La réponse est incorrecte.');
Laisser un commentaire