JQuery: trova un pulsante di opzione in base al valore


95

Come dovrei usare JQuery per trovare un pulsante di opzione in base al suo valore?

Risposte:


142

Prova questo:

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

Questo selezionerà tutti i pulsanti di opzione con l'attributo value="foobar".


Grazie l'ho usato come tale: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('checks', true);});
furgone

3
@test: Prova invece questo:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo

1
@ Gumbo se diamo un nome a quella funzione, possiamo chiamarla in questo modo ?: $ CheckRadioValues ​​= findChecked ("value");
Ben Sewards

25

Sto usando jQuery 1.6 e questo non ha funzionato per me: $(":radio[value=foobar]").attr('checked',true);

Invece, sto usando: $('[value="foobar"]').attr('checked',true); e funziona benissimo.

Il codice effettivo che sto usando cancella prima le radio e usa propinvece diattr

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

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);

è un bug che è stato risolto? o dovremmo ancora mettere le virgolette intorno al valore?
Simon_Weaver

19

Ciò può essere ottenuto anche in questo modo:

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

Questo selezionerà la radio che ha il valore di aaa


Con .filter()metodo:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();

1
questo selezionerà effettivamente tutti i pulsanti di aaa'aaa'
opzione

5

diciamo di avere qualcosa di simile nell'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>

allora questo genere di cose funziona.

$("fieldset input[name='UI_opt'][checked]").val()

2

Un selettore completo sarebbe simile a questo:

bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")

dato che probabilmente hai più di un gruppo di pulsanti di opzione come questo

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

Usare un selettore di ID come questo (prossimo esempio) non è corretto perché non dovresti avere più elementi con lo stesso ID. Presumo che qualcuno che trova questa domanda sappia già che è negativo.

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

Quanto segue :radiopuò o non può essere di interesse

Poiché: radio è un'estensione jQuery e non fa parte della specifica CSS, le query che utilizzano: radio non possono trarre vantaggio dall'aumento delle prestazioni fornito dal metodo querySelectorAll () DOM nativo. Per prestazioni migliori nei browser moderni, utilizza invece [type = "radio"].

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.