Comment utiliser JQuery pour rechercher un bouton radio en fonction de sa valeur?
Essaye ça:
$(":radio[value=foobar]")
Ceci sélectionnera tous les boutons radio avec l’attribut value="foobar"
.
J'utilise jQuery 1.6 et cela n'a pas fonctionné pour moi: $(":radio[value=foobar]").attr('checked',true);
Au lieu de cela, j'utilise: $('[value="foobar"]').attr('checked',true);
et cela fonctionne très bien.
Le code que j'utilise efface les radios en premier 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 ceci aussi:
$('input[type="radio"][value="aaa"]').val();
Ceci sélectionnera la radio qui a la valeur de aaa
Avec la méthode .filter()
:
var radio = $('input[type="radio"]').filter(function(){
return this.value === 'aaa';
}).val();
disons que vous avez quelque chose comme ça dans le 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()
Un sélecteur complet ressemblerait à ceci:
bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")
étant donné que vous avez probablement plus d'un groupe de boutons radio comme celui-ci
<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'utilisation d'un sélecteur d'identifiant comme celui-ci (exemple suivant) est incorrecte car vous ne devez pas avoir plusieurs éléments avec le même identifiant. Je suppose que quelqu'un qui trouve cette question sait déjà que c'est mauvais.
$("#DidYouEnjoyTheMovie:radio[value=yes]")
Ce qui suit à propos de :radio
peut être intéressant ou non
Parce que: radio est une extension jQuery et ne fait pas partie de la spécification CSS, les requêtes utilisant: radio ne peuvent tirer parti de l’amélioration des performances fournie par la méthode native querySelectorAll () du DOM. Pour de meilleures performances dans les navigateurs modernes, utilisez plutôt [type = "radio"].