JQuery - tìm một nút radio theo giá trị


95

Làm cách nào để sử dụng JQuery để tìm một nút radio theo giá trị của nó?

Câu trả lời:


142

Thử cái này:

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

Thao tác này sẽ chọn tất cả các nút radio có thuộc tính value="foobar".


Cảm ơn Tôi đã sử dụng nó như sau: jQuery.each (cookieObj, function (i, val) {$ (": radio [value = val]"). Attr ('đã kiểm tra', true);});
van

3
@test: Hãy thử cái này thay thế:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo

1
@Gumbo nếu chúng ta đặt tên cho hàm đó, chúng ta có thể gọi nó như vậy không?: $ CheckRadioValues ​​= findChecked ("value");
Ben Sewards,

25

Tôi đang sử dụng jQuery 1.6 và điều này không hiệu quả với tôi: $(":radio[value=foobar]").attr('checked',true);

Thay vào đó, tôi đang sử dụng: $('[value="foobar"]').attr('checked',true); và nó hoạt động rất tốt.

Mã thực tế tôi đang sử dụng sẽ xóa bộ đàm trước tiên và sử dụng propthay vìattr

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

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

đây có phải là một lỗi đã được sửa chữa? hay chúng ta vẫn nên đặt dấu ngoặc kép xung quanh giá trị?
Simon_Weaver

19

Điều này cũng có thể đạt được bằng cách này:

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

Thao tác này sẽ chọn đài có giá trị aaa


Với .filter()phương pháp:

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

1
điều này sẽ thực sự chọn tất cả các nút radio và thay đổi giá trị của họ để aaasau đó trả lại'aaa'
bendman

5

nói rằng bạn có một cái gì đó như thế này trong 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>

thì kiểu này hoạt động.

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

2

Một bộ chọn đầy đủ sẽ trông như thế này:

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

cho rằng bạn có thể có nhiều hơn một nhóm nút radio như thế này

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

Sử dụng một bộ chọn ID như thế này (ví dụ tiếp theo) là không tốt vì bạn không nên có nhiều phần tử có cùng một ID. Tôi cho rằng ai đó tìm thấy câu hỏi này đã biết điều này là xấu.

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

Những điều sau đây về :radiocó thể có hoặc có thể không được quan tâm

Vì: radio là một phần mở rộng của jQuery và không phải là một phần của đặc tả CSS, các truy vấn sử dụng: radio không thể tận dụng hiệu suất tăng cường do phương thức querySelectorAll () DOM gốc cung cấp. Để có hiệu suất tốt hơn trong các trình duyệt hiện đại, hãy sử dụng [type = "radio"] thay thế.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.