oninput事件(解决onkeyup无法监听到复制黏贴)
生活随笔
收集整理的這篇文章主要介紹了
oninput事件(解决onkeyup无法监听到复制黏贴)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
change事件需要兩個(gè)條件觸發(fā):
a)當(dāng)前對(duì)象屬性改變,并且是由鍵盤或鼠標(biāo)事件激發(fā)的(腳本觸發(fā)無(wú)效)
b)當(dāng)前對(duì)象失去焦點(diǎn)(onblur)
keypress 能監(jiān)聽(tīng)鍵盤事件,但鼠標(biāo)復(fù)制黏貼操作就無(wú)能為力
HTML5 出現(xiàn)的input事件: 只要輸入框內(nèi)容發(fā)生變化即可觸發(fā)(IE: propertychange)
---------------------
文本域輸入字符有限制 如最多125個(gè)字符。 一般可以用 max屬性
<textarea id="appy-reason" max="125"></textarea>
但textarea按enter鍵,會(huì)導(dǎo)致統(tǒng)計(jì)字?jǐn)?shù)不一致。
max認(rèn)為125個(gè)字符時(shí),用angular.element("#appy-reason).val().length統(tǒng)計(jì)出124個(gè)字符
這是因?yàn)閑nter鍵 :
有的系統(tǒng) (<換行><回車> 2個(gè)字符)
有的系統(tǒng) ''是回車,' '是換行(一個(gè)字符)
所以拋棄max屬性 ,利用onkeyup事件自己計(jì)算
-----------------------------------------------------------------
onkeyup無(wú)法監(jiān)聽(tīng)到復(fù)制黏貼導(dǎo)致的內(nèi)容變化,可以使用oninput事件
注:IE下 用 onpropertychange
<textarea ng-keydown = "addReason(event)" oninput = "angular.element(this).scope().addReason(event)" onproperty = "angular.element(this).scope().addReason(event)"> </textarea>
ng-keydown 要注意backspace鍵和delete鍵 字?jǐn)?shù)-1
enter鍵,應(yīng)該注意阻止事件冒泡
----------------------------------------------------------------
鍵盤與文本事件
按鍵順序:
keydown > keypress > keyup
keydown keypress 發(fā)生在文本變化之前 (keypress監(jiān)聽(tīng)不到backspace鍵和delete鍵)
backspace鍵 keyCode:8
delete鍵 keyCode:46
enter鍵 keyCode:13
-----------------------------------------------------------------
總結(jié)
以上是生活随笔為你收集整理的oninput事件(解决onkeyup无法监听到复制黏贴)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: STL源码剖析 数值算法 heap算法
- 下一篇: python两个for循环为什么第二个循