JQuery - rechercher un bouton radio par valeur

95

Comment utiliser JQuery pour rechercher un bouton radio par sa valeur?

van
la source

Réponses:

142

Essaye ça:

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

Cela sélectionnera tous les boutons radio avec l'attribut value="foobar".

Gombo
la source
Merci je l'ai utilisé comme tel: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('checked', true);});
van
3
@test: Essayez plutôt ceci:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo
1
@Gumbo si nous donnons un nom à cette fonction, pouvons-nous l'appeler ainsi ?: $ checkedRadioValues ​​= findChecked ("value");
Ben Sewards
25

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 réel que j'utilise efface d'abord les radios et utilise à la propplace deattr

$('[name=menuRadio]').prop('checked',false);

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
dogatonique
la source
est-ce un bogue qui a été corrigé? ou devrions-nous encore mettre des guillemets autour de la valeur?
Simon_Weaver
19

Ceci peut également être réalisé par ceci:

$('input[type="radio"][value="aaa"]').val();

Cela sélectionnera la radio qui a la valeur de aaa


Avec .filter()méthode:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();
I have
la source
1
cela sélectionnera en fait tous les boutons radio et changera leurs valeurs pour aaaensuite renvoyer le'aaa'
bendman
5

dites 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()
dylan trevena
la source
2

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'ID comme celui-ci (exemple suivant) est mauvaise car vous ne devriez pas avoir plusieurs éléments avec le même ID. Je suppose que quelqu'un qui trouve cette question sait déjà que c'est mauvais.

$("#DidYouEnjoyTheMovie:radio[value=yes]")

Ce qui suit :radiopeut ou non être intéressant

Parce que: radio est une extension jQuery et ne fait pas partie de la spécification CSS, les requêtes utilisant: radio ne peuvent pas profiter de l'amélioration des performances fournie par la méthode native DOM querySelectorAll (). Pour de meilleures performances dans les navigateurs modernes, utilisez plutôt [type = "radio"].

Simon_Weaver
la source