Comment puis-je utiliser JQuery pour trouver un bouton radio par sa valeur?
Réponses
Trop de publicités?Je suis à l'aide de jQuery 1.6 et cela n'a pas fonctionné pour moi: $(":radio[value=foobar]").attr('checked',true);
Au lieu de cela, je suis en utilisant: $('[value="foobar"]').attr('checked',true);
et il fonctionne très bien.
Le code que j'utilise efface les radios première et utilise prop
au lieu de attr
$('[name=menuRadio]').prop('checked',false);
$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
Ceci peut être réalisé par cela aussi:
$('input[type="radio"][value="aaa"]').val();
Cela permet de sélectionner la radio qui a la valeur de l'aaa
en termes de performances, c'est bien plus rapide que l' :radio
Avec .filter()
méthode:
var radio = $('input[type="radio"]').filter(function(){
return this.value === 'aaa';
}).val();
disons que vous avez quelque chose comme cela dans le code HTML:
<fieldset>
<input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
<input type="radio" name="UI_opt" value="printer"> Printer<br/>
<input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
</fieldset>
alors ce genre de chose fonctionne.
$("fieldset input[name='UI_opt'][checked]").val()
Plein sélecteur devrait ressembler à ceci:
bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")
étant donné que vous avez probablement plus d'un groupe de boutons radio comme ceci
<input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
<input name="ShipToBillingAddress" type="radio" value="False">
<input name="SomethingElse" type="radio" value="True" checked="checked">
<input name="SomethingElse" type="radio" value="False">
À l'aide d'un sélecteur d'ID comme ceci (exemple) est mauvais parce que vous ne devriez pas avoir plusieurs éléments avec le même ID. Je suppose que quelqu'un à trouver cette question, on sait déjà ce qui est mauvais.
$("#DidYouEnjoyTheMovie:radio[value=yes]")
La suite sur :radio
peut ou peut ne pas être d'intérêt
Parce que :la radio est un jQuery extension et ne fait pas partie de la CSS de la spécification, de requêtes à l'aide de :la radio ne peut pas profiter de la boost de performance fournis par les natifs de DOM querySelectorAll() la méthode. Pour de meilleures performances dans les navigateurs modernes, utilisez [type="radio"] au lieu de cela.