炎炎設(shè)計(jì)
2019-08-16 17:22:30
Textarea onchange檢測(cè)如何使用javascript檢測(cè)textarea上的更改事件?我正在嘗試檢測(cè)您輸入的剩余字符數(shù)。我嘗試使用onchange事件,但這似乎只在焦點(diǎn)出現(xiàn)時(shí)啟動(dòng)。
3 回答

至尊寶的傳說
TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
您將需要使用onkeyup
并 onchange
為此。onchange將阻止上下文菜單粘貼,并且每次按鍵都會(huì)觸發(fā)onkeyup。

米脂
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
對(duì)于Google-Chrome,oninput就足夠了(在Windows 7上測(cè)試版本為22.0.1229.94 m)。
對(duì)于IE 9,oninput將捕獲除了通過contextmenu和backspace切割之外的所有內(nèi)容。
對(duì)于IE 8,除了oninput之外,還需要onpropertychange來捕獲粘貼。
對(duì)于IE 9 + 8,需要onkeyup來捕獲退格。
對(duì)于IE 9 + 8,onmousemove是我發(fā)現(xiàn)通過contextmenu捕獲切割的唯一方法
沒有在Firefox上測(cè)試過。
var isIE = /*@cc_on!@*/false; // Note: This line breaks closure compiler... function SuperDuperFunction() { // DoSomething } function SuperDuperFunctionBecauseMicrosoftMakesIEsuckIntentionally() { if(isIE) // For Chrome, oninput works as expected SuperDuperFunction(); }<textarea id="taSource" class="taSplitted" rows="4" cols="50" oninput="SuperDuperFunction();" onpropertychange="SuperDuperFunctionBecauseMicrosoftMakesIEsuckIntentionally();" onmousemove="SuperDuperFunctionBecauseMicrosoftMakesIEsuckIntentionally();" onkeyup="SuperDuperFunctionBecauseMicrosoftMakesIEsuckIntentionally();">Test</textarea>
添加回答
舉報(bào)
0/150
提交
取消