Tôi biết điều này đã cũ nhưng câu hỏi hơi mơ hồ trong việc chuyển đổi đó có thể có nghĩa là mỗi hộp kiểm sẽ chuyển trạng thái của nó, bất kể đó là gì. Nếu bạn có 3 kiểm tra và 2 không được kiểm tra, thì việc bật tắt sẽ khiến 3 lần đầu tiên được chọn và 2 lần kiểm tra cuối cùng.
Vì thế, không có giải pháp nào ở đây hoạt động khi chúng làm cho tất cả các hộp kiểm có cùng trạng thái, thay vì chuyển đổi từng trạng thái của hộp kiểm. Thực hiện $(':checkbox').prop('checked')
trên nhiều hộp kiểm trả về logic VÀ giữa tất cả .checked
các thuộc tính nhị phân, nghĩa là nếu một trong số chúng không được chọn, giá trị được trả về là false
.
Bạn cần sử dụng .each()
nếu bạn thực sự muốn chuyển đổi từng trạng thái hộp kiểm thay vì làm cho tất cả chúng bằng nhau, ví dụ:
$(':checkbox').each(function () { this.checked = !this.checked; });
Lưu ý rằng bạn không cần $(this)
bên trong trình xử lý vì thuộc .checked
tính tồn tại trong tất cả các trình duyệt.