Come dovrei usare JQuery per trovare un pulsante di opzione in base al suo valore?
Risposte:
Prova questo:
$(":radio[value=foobar]")
Questo selezionerà tutti i pulsanti di opzione con l'attributo value="foobar"
.
function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
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 prop
invece diattr
$('[name=menuRadio]').prop('checked',false);
$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
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();
aaa
'aaa'
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()
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 :radio
può 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"].