html 重复提交表单,表单重复提交问题的三种解决思路

前端开发中接触的表单提交还是很多的,有时候如果不对提交事件进行处理的话会遇到重复多次提交。

最近开发遇到一个问题,找了挺久才找到原因解决-_-||,表单一直提交两次,以为是双击重复提交了,就在提交之后禁用提交按钮了,but...

再试还是提交了两次,结果是label包裹input,点击label提交的时候提交两次

经过这次,总结出几条表单重复提交问题查找方向,主要从几个方面来考虑:

第一:如果是点击submit类型的按钮提交表单,就要先看是否是表单的默认提交事件,如果是,禁用默认提交事件(event.preventDefault();)或者改用button类型按钮提交

$('#submit').click(function(e){

e.preventDefault()

})

第二: 如果是点击按钮ajax提交,就要在提交之后禁用掉按钮,以免重复提交,这个在平时各种情况下的表单提交都考虑进去

禁用按钮,加disabled属性,或者加pointer-event:none属性

$('#submit').click(function(){

$.ajax(...)

$(this).attr('disabled,true) // 禁用按钮or

$(this).css('pointer-event','none') // 来禁用点击事件

})

第三: 如果是点击选项提交,那么就要考虑label和input的关联问题了,点击label, 事件冒泡,input也会触发一次提交

可以这样来处理

$('label').click(function(e) {if($(e.target).is('input')){ //点击label的时候,如果事件源是input,那么就把它禁用掉

return;

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值