J'essaie de comprendre comment valider un élément de forme avec un mélange d'entrées radio et une entrée de texte:jQuery valider la radio plug-in avec le texte en option
<label>Question?</label>
<input type="radio" class="mandatory" name="questions[1][]" value="1" />answer 1<br/>
<input type="radio" class="mandatory" name="questions[1][]" value="2" />answer 2<br/>
<input class="ignore" type="radio" id="questions[1][]" />Other (please specify)<br/>
<input class="optional mandatory" type="text" name="questions[1][]" value="" />
J'ai compris comment obtenir le former à se comporter comme prévu (sélectionner et désélectionner) avec le code suivant:
$("input.optional").focus(function() {
var this_name = $(this).attr("name");
$("input:radio").filter(function() {return $(this).attr('name') == this_name; }).attr('checked', false);
$("input").filter(function() {return $(this).attr('id') == this_name; }).attr('checked', true);
});
$(':radio').click(function() {
var this_name = $(this).attr("name");
$("input").filter(function() {return $(this).attr('id') == this_name; }).attr('checked', false);
$("input.optional").filter(function() {return $(this).attr('name') == this_name; }).val('');
});
J'espérais que je pouvais utiliser la classe « obligatoire » pour valider le mélange des entrées radio et texte:
$("form .manditory").each(function() {
$(this).rules("add", {required: true});
});
Mais cela ne fonctionne pas comme prévu. Avec la radio (id = "questions [1] []") sélectionnée et l'entrée de texte contenant du contenu, l'élément de formulaire est toujours marqué comme non valide.
Suggestions ... peut-être une meilleure approche?
Merci d'avance.
MISE À JOUR
Désolé, je aurais dû préciser que j'utilise le plugin validate:
$("form").validate({ ... });
Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (http://meta.stackexchange.com/q/8259) pour inclure les parties essentielles de la réponse ici, et fournir le lien pour référence. – GDP