Tôi muốn kiểm tra xem một hộp kiểm vừa được bỏ chọn khi người dùng nhấp vào nó. Lý do cho điều này là vì tôi muốn thực hiện xác thực khi người dùng bỏ chọn hộp kiểm. Vì ít nhất một hộp kiểm cần được chọn. Vì vậy, nếu anh ta bỏ chọn cái cuối cùng, thì nó sẽ tự động kiểm tra lại.
Với jQuery, tôi có thể dễ dàng tìm hiểu xem nó đã được kiểm tra hay chưa:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Nhưng tôi thực sự chỉ muốn có một câu lệnh if kiểm tra xem một hộp kiểm vừa được bỏ chọn hay không.
Vì vậy, tôi nghĩ rằng tôi có thể làm điều đó với mã sau:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Nhưng điều này sẽ luôn hiển thị thông báo 'không được chọn'. Không thực sự như những gì tôi mong đợi ...
demo: http://jsfiddle.net/tVM5H/
Vì vậy, cuối cùng tôi cần một cái gì đó như:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Nhưng rõ ràng là điều này không hiệu quả. Tôi không muốn sử dụng ví dụ đầu tiên, vì sau đó tôi sẽ có một câu lệnh 'else' không cần thiết khi tôi chỉ cần một câu lệnh 'if'.
Vì vậy, điều đầu tiên, đây có phải là một lỗi jQuery không? Nguyên nhân đối với tôi đó là hành vi không mong đợi. Và thứ hai, có ai muốn tìm một giải pháp thay thế tốt không?