javascript如何监听 form.submit()事件
众所周知,动态表单提交(form.submit())无法触发onsubmit事件。
如果想要想要捕捉到form.submit(),在此提供两种解决方案
第一种:
在form.submit()方法之前加上form.fireEvent("onsubmit");关于fireEvent()方法请参考http://topic.csdn.net/u/20100430/09/eafd10d3-0329-4e34-a30f-8102c724816f.html
form.fireEvent("onsubmit")方法用于触发在form标签上定义的onsubmit="方法名"事件
所以要在表单动态提交时做什么处理只要写在onsubmit=“要做的事情”里即可
下面举个例子,实现功能为在表单提交时屏蔽所有的超链接按钮
js
/************************* 避免表单重复提交 ********************************/
function doSubmit(){
document.getElementById("form1").fireEvent("onsubmit");
document.getElmentById("form1").submit();
}
//绑定表单提交事件
function newsubmit() {
$("#form1").bind("submit",function(){listenSubmit();});
}
//表单提交时执行函数
function listenSubmit(){
$("body a").each(function(){
$(this).attr("disabled","true");
});
$("body a:hidden").each(function(){
$(this).attr("disabled","true");
});
}
jQuery(function($) {
newsubmit();
});
第二种:
提交表单用jquery提供的提交方法
$("#formId").sumit();
用此方法 表单提交 同样可以被监听到
除了此方法为好像还有一种通过prototype来重新定义submit事件但是没试成功
希望高手指教