IE9 не запускает событие oninput, когда символы удаляются из текстового поля с помощью клавиши возврата, клавиши удаления, команды вырезания или команды удаления из контекстного меню.Вы можете обойти проблему возврата / удаления ключа, отслеживая onkeyup.Вы также можете обойти проблему с командой cut, отслеживая oncut.Но единственный способ обойти команду удаления контекста - использовать событие onselectionchange.К счастью, если вы используете onselectionchange, вам не придется отслеживать oncut или onkeyup.
Вот пример кода, основанного на этой технике Я написал о :
<input id="myInput" type="text">
<script>
// Get the input and remember its last value:
var myInput = document.getElementById("myInput"),
lastValue = myInput.value;
// An oninput function to call:
var onInput = function() {
if (lastValue !== myInput.value) { // selectionchange fires more often than needed
lastValue = myInput.value;
console.log("New value: " + lastValue);
}
};
// Called by focus/blur events:
var onFocusChange = function(event) {
if (event.type === "focus") {
document.addEventListener("selectionchange", onInput, false);
} else {
document.removeEventListener("selectionchange", onInput, false);
}
};
// Add events to listen for input in IE9:
myInput.addEventListener("input", onInput, false);
myInput.addEventListener("focus", onFocusChange, false);
myInput.addEventListener("blur", onFocusChange, false);
</script>