2011-10-04 30 views
5

Tôi đang thay đổi trạng thái hộp kiểm theo cách này: $(this).attr("checked", 'checked');jQuery nhận tình trạng hộp kiểm

Sau này tôi muốn nhận được tình trạng ô trống, nhưng tôi nhận điều này:

$(this).attr('checked'): "checked" 
$(this).is(':checked'): false 

Làm thế nào điều này có thể?

P.S. Có lẽ tôi không thay đổi trạng thái hộp kiểm một cách chính xác thông qua jQuery?

Trả lời

13

Cách thích hợp là $(this).prop('checked') để trả lại thuộc tính boolean thay vì thuộc tính (là một chuỗi).

Sử dụng .prop() bạn cũng có thể thiết lập tình trạng kiểm tra: $(this).prop('checked', true_or_false);

Như bạn có thể nhìn thấy trên http://jsfiddle.net/ThiefMaster/QR2fL/, .attr('checked') trả về giá trị ban đầu của thuộc tính - nó không thay đổi khi kiểm tra/bỏ chọn hộp kiểm.

4

Bạn không nên đánh dấu vào hộp kiểm như thế này:

$(this).attr("checked", 'checked'); 

nhưng như thế này

$(this).prop("checked", true); 

Để kiểm tra xem một hộp kiểm được kiểm tra, bạn có thể sử dụng:

$(this).prop('checked'); 

hoặc

$(this).is(':checked'); 

trả về số boolean proerty

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