Tôi đã viết đoạn mã javascript/jQuery này để thay đổi một hộp kiểm. http://jsfiddle.net/johnhoffman/crF93/Tại sao tự động thay đổi hộp kiểm không kích hoạt sự kiện thay đổi biểu mẫu?
Javascript
$(function() {
$("a").click(function() {
if ($("input[type='checkbox']").attr('checked') == "checked")
$("input[type='checkbox']").removeAttr('checked');
else
$("input[type='checkbox']").attr('checked', 'checked');
return false;
});
$("input[type='checkbox']").change(function(){
console.log("Checkbox changed.");
});
});
HTML
<input type="checkbox" />
<a href="#">Change CheckBox</a>
Điều thú vị là, nhấn vào liên kết làm thay đổi hộp văn bản, nhưng không kích hoạt sự kiện thay đổi hình thức mà các cuộc gọi chức năng mà các bản ghi một thông điệp trong Chrome Bảng điều khiển dành cho nhà phát triển web. Tại sao? Làm thế nào để tôi làm điều đó?
[ "Các sự kiện thay đổi xảy ra khi một điều khiển mất tập trung đầu vào và giá trị của nó đã được sửa đổi từ tập trung. "] (http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-htmlevents) Không có thay đổi tập trung có nghĩa là không có sự kiện thay đổi. –
có thể trùng lặp của [sự kiện trao đổi không kích hoạt khi thay đổi đến từ chức năng chống trộm] (http: // stackoverflow.com/questions/7055729/onchange-event-not-fire-khi-the-change-come-from-antoher-function) –