JQuery - temukan tombol radio berdasarkan nilai

95

Bagaimana saya menggunakan JQuery untuk menemukan tombol radio berdasarkan nilainya?

mobil van
sumber

Jawaban:

142

Coba ini:

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

Ini akan memilih semua tombol radio dengan atribut value="foobar".

Gumbo
sumber
Terima kasih saya menggunakannya seperti: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('check', true);});
van
3
@ tes: Coba ini sebagai gantinya:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo
1
@Gumbo jika kita memberi nama pada fungsi itu, dapatkah kita memanggilnya seperti itu ?: $ checkRadioValues ​​= findChecked ("value");
Ben Sewards
25

Saya menggunakan jQuery 1.6 dan ini tidak berhasil untuk saya: $(":radio[value=foobar]").attr('checked',true);

Sebaliknya, saya menggunakan: $('[value="foobar"]').attr('checked',true); dan itu berfungsi dengan baik.

Kode sebenarnya yang saya gunakan membersihkan radio terlebih dahulu dan menggunakan propalih-alihattr

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

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);
dogatonis
sumber
apakah ini bug yang telah diperbaiki? atau haruskah kita tetap memberi tanda kutip pada nilainya?
Simon_Weaver
19

Ini juga bisa dicapai dengan ini:

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

Ini akan memilih radio yang memiliki nilai aaa


Dengan .filter()metode:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();
Jai
sumber
1
ini sebenarnya akan memilih semua tombol radio dan mengubah nilainya untuk aaakemudian mengembalikan'aaa'
bendman
5

katakanlah Anda memiliki sesuatu seperti ini di 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>

lalu hal semacam ini berhasil.

$("fieldset input[name='UI_opt'][checked]").val()
dylan trevena
sumber
2

Pemilih penuh akan terlihat seperti ini:

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

mengingat Anda mungkin memiliki lebih dari satu grup tombol radio seperti ini

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

Menggunakan pemilih ID seperti ini (contoh berikutnya) tidak baik karena Anda tidak boleh memiliki banyak elemen dengan ID yang sama. Saya berasumsi seseorang yang menemukan pertanyaan ini sudah mengetahui bahwa ini buruk.

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

Berikut ini tentang :radiomungkin atau mungkin tidak menarik

Karena: radio adalah ekstensi jQuery dan bukan bagian dari spesifikasi CSS, kueri yang menggunakan: radio tidak dapat memanfaatkan peningkatan kinerja yang disediakan oleh metode DOM querySelectorAll () asli. Untuk kinerja yang lebih baik di peramban modern, gunakan [type = "radio"] sebagai gantinya.

Simon_Weaver
sumber