J'ai creusé mon cerveau pour trouver une meilleure solution à la situation suivante. Imaginez une page avec BEAUCOUP de boutons radio, puis une validation personnalisée mettant en évidence les groupes de boutons radio qui n'ont pas été répondus.utiliser jquery pour trouver des groupes de radiobutton sans réponses
exemple html (avec quelques réponses): présélectionnées
<input type='radio' name='a' value='1' />
<input type='radio' name='a' value='2' />
<input type='radio' name='a' value='3' />
<input type='radio' name='b' value='1' checked="checked"//>
<input type='radio' name='b' value='2' />
<input type='radio' name='b' value='3' />
<input type='radio' name='c' value='1' />
<input type='radio' name='c' value='2' checked="checked"/>
<input type='radio' name='c' value='3' />
<input type='radio' name='d' value='1' />
<input type='radio' name='d' value='2' />
<input type='radio' name='d' value='3' />
Je l'ai déjà écrit un peu de jQuery qui fait ce que je veux, mais je sais que cela peut être fait mieux/plus rapide/plus jolie/plus efficacement.
//select all radiobuttons
var $radios = $("input[type='radio']")
//loop through all the radios that are checked
$($radios+":checked").each(function(){
//filter out all radios with the current name, and add something to recognize them with
$($radios).filter("[name='" + $(this).attr("name") + "']").addClass("checked")
});
//find all radios without the class checked, and highlight them
var $unchecked_radios = $($radios + ":not(.checked)").addClass("highlight");
Mais je suis coincé sur la façon de combiner les deux, donc en soustrayant ceux qui ont une réponse de l'ensemble de la population des radios.
(bien que je pense qu'il pourrait y avoir une meilleure façon de sélectionner des groupes de boutons radio avec le même nom)
Toute aide serait grandement appréciée!
Cordialement, Casper
Un objet '{a: faux, b: vrai, c: vrai, d: faux}' fonctionnera-t-il pour vous? –
@salman A, pas vraiment, parce que si je le récupère comme un objet jQuery je peux immédiatement faire d'autres choses avec ça – Koesper