Tôi đã cố gắng chọn các nút radio có lập trình bằng jQuery, điều tôi nghĩ sẽ đơn giản như thay đổi thuộc tính đã chọn.Có lỗi với nút radio trong jQuery 1.9.1 không?
Tuy nhiên, đoạn mã sau dường như không làm gì được mong đợi trong jQuery 1.9.1 trong Chrome/Firefox.
Hành vi mong muốn: Nhấp vào div kèm nút radio -> thuộc tính 'đã chọn' được đặt -> hiển thị được chọn trong DOM.
Hành vi thực tế: Nhấp vào nút div kèm nút radio -> thuộc tính 'đã chọn' -> hiển thị được chọn trong DOM cho nút đầu tiên và nút thứ hai, các nút tiếp theo không hiển thị như đã chọn.
jQuery:
$('div.form-type-radio').on('click', function() {
var Id = $(this).find('input[type=radio]').attr('id');
$('form input[type=radio]:not(#'+Id+')').removeAttr('checked');
$('#' + Id).attr('checked', 'checked');
console.log($('#' + Id));
});
Dưới đây là một jsFiddle - http://jsfiddle.net/GL9gC/
Tôi đã thử đoạn code tương tự với phiên bản trước của jQuery và tất cả các công trình như mong đợi.
Không phải là nó có liên quan gì với điều này, nhưng tại sao các heck bạn sẽ nhận được các phần tử , sau đó là ID và một số các dòng dưới đây sử dụng ID để lấy lại phần tử? ('không' cũng làm việc với các phần tử). toàn bộ chức năng của bạn có thể chỉ là '$ ('input [type = radio]', điều này) .prop ('kiểm tra', true);' – adeneo
Đó chỉ còn sót lại từ một số đầu gãi và gỡ lỗi, chỉ là hoàn toàn chắc chắn tôi đã ID. – Simon