ajax提交两次表单问题总结

本文总结了在使用Ajax提交表单时遇到的重复提交问题,包括以submit和click事件触发的情况。分析了问题原因,并提供了多种解决方法,如使用unbind()解除事件绑定,设置事件标识避免重复执行,以及在Ajax成功后正确处理click事件,防止事件堆积。
摘要由CSDN通过智能技术生成

在做测试提交表单时发现如果前面提交过一次后再去提交,后台会走两次,前台也会输出两次

第一种情况 以submit触发ajax
原因:在触发ajax请求服务器时,ajax是同步处理的,这个期间客户端不能做任何处理,当 ajax 执行完毕才会继续执行其他代码。期间提交表单则又会请求一次服务器,如果你ajax和表单请求同一个页面就会出现执行2次的问题,比如说插入两次数据

第二种情况 以click事件触发ajax
解决方法一:
改成$("#export1").unbind(‘click’).bind(‘click’,function(){…});

unbind()为了清除这个dom之前绑定的事件,click 不是 替换原有的function 而是接着添加,所以才会执行次数越来越多
解决方法二:

$("#myDiv").click(function(e){
   
 e.stopPropagation();   //表示阻止向父元素冒泡
 e.preventDefault();     //阻止 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交或者a标签)。
}); 

解决方法三:
添加个事件标识 在点击第二次时则直接结束事件 return false
举个栗子:

$('#updateAndSave').click(function () {
   
            var isClicked = false        //定义个点击标识
            var telText=/^1\d{10}$/;
            if(!isClicked){
           //第一次点击直接过

            
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值