Текстовое поле Miscrosoft Edge не запускает событие ввода при удалении одного символа новой строки

Когда у вас есть текстовая область, содержащая один символ '\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.


person Fanick    schedule 04.11.2016    source источник
comment
Ваш jsfiddle работал с моим пограничным браузером. Нет проблем.   -  person user5542121    schedule 04.11.2016
comment
Может быть, эта идея поможет, слушайте keyup или change вместо ввода. Кажется, это еще не идеально, caniuse.com/#feat=input-event. здесь можно найти проблему: developer.microsoft.com/en-us /microsoft-edge/platform/issues   -  person user5542121    schedule 04.11.2016


Ответы (2)


bug.addEventListener('keyup', logEvent)

keyup вместо input отлично работало в моей версии Edge. И я полагаю, что это должно работать в каждом браузере. За исключением таких вещей, как вставка правой кнопкой мыши. Так что это еще не решение всех ваших проблем. https://jsfiddle.net/cjztogvh/

Для справки, версия EDGE у меня 38.14393.0.0.

person user5542121    schedule 04.11.2016

Это было исправлено в Edge 14.14393.

person Fanick    schedule 07.11.2016