轉(zhuǎn)載自:https://segmentfault.com/a/1190000012521627
表單事件集錦-input
最近在寫一個(gè)手機(jī)端提交表單的項(xiàng)目,里面用了不少input標(biāo)簽郭宝,因?yàn)轫?xiàng)目不太忙,所以堪置,想做的完美點(diǎn)藕施,但是遇到了一些問(wèn)題,比如:頁(yè)面中的必填項(xiàng)如果有至少一項(xiàng)為空,提交按鈕就是不能提交的狀態(tài)毁靶,所以需要對(duì)所有的input內(nèi)容進(jìn)行監(jiān)聽,剛開始我用了jquery的keyup事件解決問(wèn)題逊移,但是后來(lái)測(cè)試出一個(gè)bug预吆,如果用戶選擇粘貼復(fù)制的話,keyup事件不能觸發(fā)胳泉,也就不能通過(guò)判斷input內(nèi)容來(lái)改變提交按鈕的狀態(tài)拐叉。下面就這種問(wèn)題做下總結(jié)岩遗,希望對(duì)自己和他人以后能有點(diǎn)幫助。
1.onfocus 當(dāng)input 獲取到焦點(diǎn)時(shí)觸發(fā)
2.onblur 當(dāng)input失去焦點(diǎn)時(shí)觸發(fā)凤瘦,注意:這個(gè)事件觸發(fā)的前提是已經(jīng)獲取了焦點(diǎn)再失去焦點(diǎn)的時(shí)候會(huì)觸發(fā)相應(yīng)的js
3.onchange 當(dāng)input失去焦點(diǎn)并且它的value值發(fā)生變化時(shí)觸發(fā)
4.onkeydown 在 input中有鍵按住的時(shí)候執(zhí)行一些代碼
5.onkeyup 在input中有鍵抬起的時(shí)候觸發(fā)的事件宿礁,在此事件觸發(fā)之前一定觸發(fā)了onkeydown事件
6.onclick 主要是用于 input type=button,當(dāng)被點(diǎn)擊時(shí)觸發(fā)此事件
7.onselect 當(dāng)input里的內(nèi)容文本被選中后執(zhí)行一段廷粒,只要選擇了就會(huì)觸發(fā)窘拯,不是非得全部選中
8.oninput 當(dāng)input的value值發(fā)生變化時(shí)就會(huì)觸發(fā),不用等到失去焦點(diǎn)(與onchange的區(qū)別)
以上事件可以直接放到input的屬性里坝茎,例如:<input type="text" onfocus="a();" onblur="b()" onchange="c();" onkeydown="d();" />涤姊,也可以通過(guò)js給input dom元素添加相應(yīng)的事件,如:document.getElementByTagName('input').onfocus = function();