今天在写表单时,在表单中把<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