JQuery - temukan tombol radio berdasarkan nilai


95

Bagaimana saya menggunakan JQuery untuk menemukan tombol radio berdasarkan nilainya?

Jawaban:


142

Coba ini:

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

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


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

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

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()

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.