删除单个换行符时,Miscrosoft Edge textarea不触发输入事件

时间:2016-11-04 14:13:57

标签: microsoft-edge

当你有一个包含单个字符'\n'的textarea时,textarea在删除该字符时不会触发输入事件。在我想要更新具有剩余字符数的计数器的情况下,此行为会导致计数器显示错误信息。

现场演示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)

编辑边缘版:13.10586。 所以这个问题可能已经在最近的版本中修复过了。

编辑2:已在Edge 14.14393中修复。

2 个答案:

答案 0 :(得分:0)

bug.addEventListener('keyup', logEvent)

keyup代替input在我的版本边缘中运行良好。我认为它应该适用于每个浏览器。除了右键单击粘贴之类的东西。所以它仍然没有解决你所有的问题。 https://jsfiddle.net/cjztogvh/

作为参考,我的EDGE版本是38.14393.0.0

答案 1 :(得分:0)

已在Edge 14.14393中修复。