js改變value值不能觸發-oninput事件存在的一個缺陷
在網上查了一下,官方對oninput的定義如下:
window對象上input事件的事件句柄,當<input> 元素的value屬性值由輸入設備改變時,就會觸發input事件。
該事件是冒泡的.除了在window對象上, <input>文本框元素也有input事件.
參考鏈接:https://developer.mozilla.org/zh-CN/docs/Web/API/GlobalEventHandlers.oninput
上面紅體加大的這句話告訴了一個事實,就是使用javascript來改變<input>的value值的時候是不會激發oninput事件的。
但是在低版本IE中(IE9以下),oninput事件的替代品onpropertychange是可以做到這一點的,從字面意思上就可以看出來,只要屬性改變就激發,奈何只有IE支持。
目前對于這種情況的解決辦法有限,一般情況下,在要求不高的場合,是可以忽略不計的。如果有這方面的要求,那就在輸入框加上一個定時器,來實時監控input和textarea的變化。