web-dev-qa-db-fra.com

JQuery - trouve un bouton radio par valeur

Comment utiliser JQuery pour rechercher un bouton radio en fonction de sa valeur?

91
van

Essaye ça:

$(":radio[value=foobar]")

Ceci sélectionnera tous les boutons radio avec l’attribut value="foobar".

136
Gumbo

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);
24
dogatonic

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();
19
Jai

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()
5
dylan trevena

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"].

1
Simon_Weaver