Когда у вас есть текстовая область, содержащая один символ '\n'
, текстовая область не будет запускать событие ввода при удалении этого символа. В моем случае, когда я хочу обновить счетчик с количеством оставшихся символов, это поведение приводит к тому, что счетчик отображает неверную информацию.
Живая демонстрация https://jsfiddle.net/k594e6rt/5/
HTML:
<label>Go into this textarea to the last row and press backspace. It won't trigger the input event despite deleting a char. This demonstrates a bug in the Edge browser.</label><br/>
<textarea id="bug" rows="3"></textarea><br/>
<label>Log:</label><br/>
<div id="log">---<br/></div>
js:
/* setup */
var bug = document.getElementById('bug');
var problematicText = String.fromCodePoint(10); //newline
bug.value = problematicText
/* debugging setup */
var counter = 1;
var log = document.getElementById('log');
var logEvent = function logEvent(){
log.innerHTML += (counter++ + ': input fired! <br/>');
}
bug.addEventListener('input', logEvent)
Изменить: версия Edge: 13.10586. Так что проблема, возможно, уже была исправлена в последней версии.
Изменить 2: исправлено в Edge 14.14393.