今天在寫表單時,在表單中把<button>的type設置爲'button',在js中經過click事件綁定來手動觸發form的表單提交(form.submit()),同時註冊了一個submit()的事件監聽,結果發現這種方式如何也沒法觸發onsubmit事件..chrome
google/baidu以後,找到一段關於這個緣由的說明測試
The submit method does not invoke the onsubmit event handler. Call the onsubmit event handler directly. When using Microsoft® Internet Explorer 5.5 and later, you can call the fireEvent method with a value of onsubmit in the sEvent parameter. 網站
簡譯爲:google
submit方法不可以調用onsubmit事件句柄器, 請直接調用onsubmit事件句柄。當使用IE5.5+,你可以調用觸發事件方法的onsubmit在sEvent上的參數值spa
同時在w3school.com.cn的網站上也對此有說明:firefox
該方法提交表單的方式與用戶單擊 Submit 按鈕同樣,可是表單的 onsubmit 事件句柄不會被調用orm
不只在IE5.5以後,經測試在firefox,和chrome上也沒有對該事件的句柄進行調用。因此請在須要觸發前手動調用,好比kissy中,Node.fire('submit');事件
在利用fireEvent也能夠。不過須要注意兼容性問題..it
關於如何建立自定義事件可看。。event