javascript如何监听 form.submit()事件

解决form.submit()不触发onsubmit事件
本文介绍了解决动态表单提交(form.submit())不触发onsubmit事件的方法。提供了两种解决方案:一是使用form.fireEvent(onsubmit)手动触发事件;二是采用jQuery的submit方法,并能监听到表单提交。
部署运行你感兴趣的模型镜像
众所周知,动态表单提交(form.submit())无法触发onsubmit事件。

如果想要想要捕捉到form.submit(),在此提供两种解决方案


第一种:

在form.submit()方法之前加上form.fireEvent("onsubmit");关于fireEvent()方法请参考http://topic.youkuaiyun.com/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事件但是没试成功

希望高手指教

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值