Tại sao tôi phải vật lộn với điều này?Đặt đài được chọn từ nhóm radio có giá trị
Tôi có một giá trị: 5
Làm cách nào để kiểm tra nút radio của nhóm "nhóm của tôi" có giá trị là 5?
$("input[name=mygroup]").val(5); // doesn't work?
Tại sao tôi phải vật lộn với điều này?Đặt đài được chọn từ nhóm radio có giá trị
Tôi có một giá trị: 5
Làm cách nào để kiểm tra nút radio của nhóm "nhóm của tôi" có giá trị là 5?
$("input[name=mygroup]").val(5); // doesn't work?
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');
' đã chọn 'không hoạt động đối với các nút radio. –
@Felix: không, nó phải được 'kiểm tra', kể từ khi được chỉnh sửa. =) –
@Dave đừng quên "mygroup" – hunter
$("input[name='mygroup'][value='5']").attr("checked", true);
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
Và .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">
và <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/
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.
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');
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);
}
})
}
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
$("input[name='RadioTest'][value='2']").prop('checked', true);
.prop ('checked', true) có lẽ tốt hơn hoặc .is() – bladefist
@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! –
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