這幾天項目著急,同時也學到好多以前沒有接觸過的知識。oninput、onchange與onpropertychange事件的區別, 與input輸入框實時檢測 onchange事件只在鍵盤或者滑鼠操作改變對象屬性,value的值發生變化且失去焦點時觸發,用戶js改變value時無法觸發; onkey ...
這幾天項目著急,同時也學到好多以前沒有接觸過的知識。oninput、onchange與onpropertychange事件的區別, 與input輸入框實時檢測
-
onchange事件只在鍵盤或者滑鼠操作改變對象屬性,value的值發生變化且失去焦點時觸發,用戶js改變value時無法觸發;
-
onkeydown/onkeypress/onkeyup鍵盤事件來監測的話,監聽不了右鍵的複製、剪貼和粘貼這些操作。
-
oninput是標準瀏覽器的事件,對於檢測 textarea, input:text,input:password 和 input:search 這幾個元素通過用戶界面發生的內容變化非常有用,在內容修改後立即被觸發,不像 onchange 事件需要失去焦點才觸發,但是通過js改變value時,卻不會觸發。
-
onpropertychange 是 IE 特有的事件。
oninput與onpropertychange失效的情況:
(1)oninput事件:a). 當腳本中改變value時,不會觸發;b).從瀏覽器的自動下拉提示中選取時,不會觸發。
(2)onpropertychange事件:當input設置為disable=true後,onpropertychange不會觸發。
(3)oninput 和 onpropertychange 這兩個事件在 IE9 中都有個小BUG,那就是通過右鍵菜單菜單中的剪切和刪除命令刪除內容的時候不會觸發,而 IE 其他版本都是正常的,目前還沒有很好的解決方案。