2016-11-04 88 views
2

當您擁有包含單個字符的textarea '\n'時,textarea在刪除該字符時不會觸發輸入事件。在我的情況下,我想用剩餘字符數來更新計數器,這種行爲會導致計數器顯示錯誤的信息。當刪除單個換行符時,Miscrosoft Edge 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中。

+1

你的jsfiddle與我的邊緣瀏覽器一起工作。那裏沒問題。 – user5542121

+0

也許這個想法有幫助,聽取密碼或改變而不是輸入。 似乎還不完美,http://caniuse.com/#feat=input-event 也許你可以在這裏找到問題: https://developer.microsoft.com/en-us/microsoft-edge/平臺/問題/ – user5542121

回答

0

它已被固定在邊14.14393。

0
bug.addEventListener('keyup', logEvent) 

keyup而不是input在我的版本邊緣的正常工作。我想它應該適用於每個瀏覽器。除了像右鍵單擊粘貼。所以它仍然沒有解決你所有的問題。 https://jsfiddle.net/cjztogvh/

僅供參考,EDGE版本我已經是38.14393.0.0