1. onchange 事件與 onpropertychange 事件的區(qū)別:
onchange 事件在內(nèi)容改變(兩次內(nèi)容有可能還是相等的)且失去焦點(diǎn)時(shí)觸發(fā);
onpropertychange 事件卻是實(shí)時(shí)觸發(fā),即每增加或刪除一個(gè)字符就會(huì)觸發(fā),通過(guò) js 改變也會(huì)觸發(fā)該事件,但是該事件 IE 專有;
2. oninput 事件與 onpropertychange 事件的區(qū)別:
oninput 事件是 IE 之外的大多數(shù)瀏覽器支持的事件,在 value 改變時(shí)觸發(fā),實(shí)時(shí)的,即每增加或刪除一個(gè)字符就會(huì)觸發(fā),然而通過(guò) js 改變 value 時(shí),卻不會(huì)觸發(fā)。
onpropertychange 事件是任何屬性改變都會(huì)觸發(fā)的,而 oninput 卻只在 value 改變時(shí)觸發(fā),oninput 要通過(guò) addEventListener() 來(lái)注冊(cè),onpropertychange 注冊(cè)方式跟一般事件一樣。(此處都是指在js中動(dòng)態(tài)綁定事件,以實(shí)現(xiàn)內(nèi)容與行為分離)
3. oninput 與 onpropertychange 失效的情況:
oninput 事件:
- 當(dāng)腳本中改變 value 時(shí),不會(huì)觸發(fā);
- 從瀏覽器的自動(dòng)下拉提示中選取時(shí),不會(huì)觸發(fā);
onpropertychange 事件:
- 當(dāng) input 設(shè)置為 disable=true 后,onpropertychange 不會(huì)觸發(fā);