layui.form.on里面提交表单时,里面的form表单提交了两次

在使用layui框架时遇到一个表单提交通过ajax发送请求时意外触发两次的问题,导致数据库中出现重复数据。经过调试发现,尽管只引用了一次layui.js,但表单提交仍然被执行了两次。解决方案是注释掉特定代码段,从而避免了重复提交。问题的根源尚不清楚,但这一临时措施成功解决了数据重复的问题。
摘要由CSDN通过智能技术生成

有一些人,他还活着,可是他已经死了。----鲁迅没说过

  • 问题

​​​​​​在学习的过程中,遇到了一个问题,layui的form表单在ajax提交的时候执行了两次。导致的最直观的后果就是数据重复,每次保存的内容,都会在数据库中存两条,偶尔还会多一条

http://img3.mukewang.com/609e5c420001b35d19200772.jpg

关键代码如下

layui.form.on('submit(addSubmit)', function (data) {

    $.ajax({
        url: data.form.action
        , async: false//同步
        , type: 'POST'
        , contentType: 'application/json;charset=utf-8'
        , data: JSON.stringify(data.field)
        , success: function (res) {
            if (res.code == 0) {
                layer.closeAll();//关闭弹出层
                query();
            } else {
                layer.alert(res, msg);
            }
        }
    });

    return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。
});

发现数据重复后,调试了一下js的代码,发现return false之后再一次执行了ajax

 

查了一些资料和回答,发现是引用layui.js的问题

但是我只引用了一次,网上其他回答几乎都是发现了自己人为重复引用layui.js

问题原因暂时未知,代码图如下:(PS:如果有小伙伴知道原因的,也可以在评论区告知,哈哈。)

  • 解决方案

将下面的代码注释掉

执行后,终于正常了

http://img3.mukewang.com/609e5dcf00019fad19150759.jpg

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值