2011-01-06 43 views

Trả lời

258

Với sự trợ giúp của attribute selector bạn có thể chọn phần tử đầu vào có giá trị tương ứng. Sau đó, bạn phải thiết lập các thuộc tính một cách rõ ràng, sử dụng .attr:

var value = 5; 
$("input[name=mygroup][value=" + value + "]").attr('checked', 'checked'); 

Kể từ jQuery 1.6, bạn cũng có thể sử dụng phương pháp .prop với một giá trị boolean (điều này nên là phương pháp ưa thích):

$("input[name=mygroup][value=" + value + "]").prop('checked', true); 

Hãy nhớ rằng trước hết bạn cần loại bỏ thuộc tính đã chọn khỏi bất kỳ nút radio nào trong một nhóm nút radio, sau đó bạn sẽ có thể thêm thuộc tính/thuộc tính đã chọn vào một trong các nút radio trong nhóm nút radio đó.

mã để loại bỏ Checked Thuộc tính từ tất cả các nút radio của nút nhóm một đài phát thanh -

$('[name="radioSelectionName"]').removeAttr('checked'); 
+0

.prop ('checked', true) có lẽ tốt hơn hoặc .is() – bladefist

+3

@bladefist: '.is' sẽ không trợ giúp ở đây, nhưng tôi đồng ý với' .prop'. Nó không có sẵn trở lại sau đó;) Sẽ cập nhật câu trả lời của tôi. Cảm ơn! –

+4

Nếu giá trị của nút radio có số thập phân, bạn cần đặt giá trị trong dấu ngoặc kép – Robert

11

Hãy thử điều này:

$('input:radio[name="mygroup"][value="5"]').attr('checked',true); 

JS Fiddle demo.

+0

' đã chọn 'không hoạt động đối với các nút radio. –

+0

@Felix: không, nó phải được 'kiểm tra', kể từ khi được chỉnh sửa. =) –

+0

@Dave đừng quên "mygroup" – hunter

8
$("input[name='mygroup'][value='5']").attr("checked", true); 
102

Có một cách tốt hơn để kiểm tra radio và hộp kiểm; bạn phải vượt qua một mảng các giá trị với phương pháp val thay vì một giá trị nguyên

$("input[name=mygroup]").val([5]); 

Đây là jQuery doc giải thích cách hoạt động: http://api.jquery.com/val/#val-value

.val([...]) cũng làm việc với các yếu tố hình thức như <input type="checkbox">, <input type="radio"><option> s bên trong số <select>.

Các đầu vào và các tùy chọn có giá trị phù hợp với một trong những yếu tố của mảng sẽ được kiểm tra hoặc được lựa chọn, trong khi những người có một giá trị không phù hợp với một trong những yếu tố của mảng sẽ là kiểm soát hoặc không được chọn

Fiddle chứng minh làm việc này: https://jsfiddle.net/92nekvp3/

1

hoặc bạn chỉ có thể viết thuộc tính giá trị cho nó:

$(':radio[value=<yourvalue>]').attr('checked',true); 

Điều này phù hợp với tôi.

5

Khi bạn thay đổi giá trị thuộc tính như đã nêu ở trên sự kiện change không được kích hoạt vì thế nếu cần thiết đối với một số lý do bạn có thể kích hoạt nó như vậy

$('input[name=video_radio][value="' + r.data.video_radio + '"]') 
     .prop('checked', true) 
     .trigger('change'); 
0
var key = "Name_radio"; 
var val = "value_radio"; 
var rdo = $('*[name="' + key + '"]'); 
if (rdo.attr('type') == "radio") { 
$.each(rdo, function (keyT, valT){ 
    if ((valT.value == $.trim(val)) && ($.trim(val) != '') && ($.trim(val) != null)) 

    { 
    $('*[name="' + key + '"][value="' + (val) + '"]').prop('checked', true); 
    } 
    }) 
} 
+3

Bạn có thể giải thích mã của bạn có trong câu trả lời của bạn không? Ít nhất một câu hay như vậy. Và làm thế nào nó giải quyết được giải pháp. Cảm ơn bạn. – Alex

Các vấn đề liên quan