oninput事件(解決onkeyup沒法監聽到複製黏貼)

change事件須要兩個條件觸發:
   a)當前對象屬性改變,而且是由鍵盤或鼠標事件激發的(腳本觸發無效)
   b)當前對象失去焦點(onblur) 

  keypress  能監聽鍵盤事件,但鼠標複製黏貼操做就無能爲力app

HTML5 出現的input事件: 只要輸入框內容發生變化便可觸發(IE: propertychange)
---------------------
文本域輸入字符有限制 如最多125個字符。 通常能夠用 max屬性
<textarea id="appy-reason" max="125"></textarea>

但textarea按enter鍵,會致使統計字數不一致
max認爲125個字符時,用angular.element("#appy-reason).val().length統計出124個字符
這是由於enter鍵 :
有的系統 \n\r(<換行><回車> 2個字符)
有的系統 '\r'是回車,'\n'是換行(一個字符)
因此拋棄max屬性 ,利用onkeyup事件本身計算
-----------------------------------------------------------------

onkeyup沒法監聽到複製黏貼致使的內容變化,能夠使用oninput事件this

注:IE下 用 onpropertychangespa

<textarea
 ng-keydown = "addReason(event)"
 oninput = "angular.element(this).scope().addReason(event)"
 onproperty = "angular.element(this).scope().addReason(event)">
 
 </textarea>
ng-keydown 要注意backspace鍵和delete鍵 字數-1
enter鍵,應該注意阻止事件冒泡
----------------------------------------------------------------
鍵盤與文本事件
按鍵順序:
keydown > keypress > keyup
keydown\ keypress 發生在文本變化以前 (keypress監聽不到backspace鍵和delete鍵)

backspace鍵 keyCode:8
delete鍵 keyCode:46
enter鍵    keyCode:13
-----------------------------------------------------------------
相關文章
相關標籤/搜索