2012-01-13 36 views
15

Làm cách nào để tôi có thể kiểm tra xem hộp kiểm 'này' đã được kiểm tra bằng lệnh này chưa?Kiểm tra xem hộp kiểm 'này' có được kiểm tra là

Tôi có sau nhưng không chắc chắn làm thế nào để thực hiện điều này (vì vậy nó chỉ kiểm tra hộp kiểm đơn chọn chứ không phải là tất cả trên trang

if ($('input[type="checkbox"]').is(':checked') 

Trả lời

22

gì về điều này?

if($(this).is(':checked')) 
+0

cảm ơn tôi vừa mới làm việc! doh đẹp một người bạn đời sẽ chấp nhận câu trả lời ngay :) – Zabs

+3

Điều này làm việc, nhưng nó không phải là thực hành tốt. Xem câu trả lời của tôi cho lý do tại sao điều này là rất kém hiệu quả. – lonesomeday

12

Có lẽ bạn có nghĩa là this trong bối cảnh xử lý sự kiện ... Trong trường hợp đó, chỉ cần kiểm tra thuộc tính checked:

$('input[type="checkbox"]').click(function() { 
    if (this.checked) { 
     // checkbox clicked is now checked 
    } 
}); 

Lưu ý rằng bạn có thể làm tương tự với các phương pháp sau:

  • $(this).is(':checked')
  • $(this).prop('checked')

Tuy nhiên, this.checked tránh việc tạo ra một đối tượng jQuery mới, vì vậy còn lâu mới hiệu quả hơn (và nhanh hơn để mã). is là chậm nhất: phải mất hai lần miễn là prop và khoảng 100 lần miễn là tra cứu thuộc tính đơn giản.

jsPerf comparison between this techniques

3

Bạn cần sử dụng bộ chọn ID. Bộ chọn [type = "checkbox"] đầu vào sẽ trả về 'tất cả các hộp kiểm.

if ($('#Checkbox1').is(':checked')) 

nơi Checkbox1 là ID của hộp kiểm

1

thử những điều sau đây, nơi bạn biết id

$('#edit-checkbox-id').is(':checked'); 

hoặc nếu bạn đã đề cập đến mục với từ khóa này

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

Tôi sử dụng các mục sau:

$(this).find('input[type="checkbox"]:checked') 

ví dụ này trả về tất cả các hộp kiểm đã được kiểm tra

2

Ý của bạn là như thế này (0 là index):

if ($(':checkbox').get(0).is(':checked')) 

Hoặc như thế này:

if ($(this).is(':checked')) 
2

Nhìn vào prop(): http://api.jquery.com/prop/

Chữ d ocs cung cấp nhiều cách tốt hơn để kiểm tra hộp kiểm "đã chọn".

elem.checked      | true (Boolean) Will change with checkbox state 
$(elem).prop("checked")   | true (Boolean) Will change with checkbox state 
elem.getAttribute("checked")  | "checked" (String) Initial state of the checkbox; does not change 
$(elem).attr("checked")(1.6)  | "checked" (String) Initial state of the checkbox; does not change 
$(elem).attr("checked")(1.6.1+) | "checked" (String) Will change with checkbox state 
$(elem).attr("checked")(pre-1.6) | true (Boolean) Changed with checkbox state 
Các vấn đề liên quan