Tôi nhận thấy rằng trong các phiên bản Internet Explorer khác nhau, sự kiện onchange
không bị bắt khi giá trị của đầu vào bị thay đổi bởi hàm js, hành vi không xảy ra với các trình duyệt khác như Mozilla hoặc Chrome.sự kiện thay đổi và xung đột thay đổi giá trị đầu vào có lập trình trên IE
tra một chút tôi thấy rằng các hoạt động chính xác của onchange
trong IE không được bảo đảm khi giá trị bị thay đổi bởi js:
- onchange not fired on IE
onchange not fired when autocomplete is on
Ví dụ (thử nghiệm trên IE):
function onchangeRequest(){
console.log('onchange fired');
}
function changeValue (input){
input.value += "hello"
}
<h4> focus lost doesnt invoke onchangeRequest() </h4>
<input id="valueInput" onkeyup="changeValue(this);" onchange="onchangeRequest();" />
<h4> focus lost invokes onchangeRequest() </h4>
<input id="valueInput" onchange="onchangeRequest();" />
tôi đã không tìm thấy một lời giải thích thuyết phục trong những lý do tại sao IE không giải quyết những tình huống một cách chính xác. Đây có phải là "lỗi đã biết" mà chúng ta phải giải quyết không? Có bất kỳ tài liệu tham khảo chính thức nào mà nó được thông báo rằng IE không đảm bảo hành vi đúng của sự kiện trao đổi không?