天天看点

关于layui表单提交两次的问题

(1) 一般用layui导致提交两次,会想到的是在绑定on sumit的时候没有return false,导致没有把常规提交方式拦截下来,再次访问了action

form.on('submit(formDemo)', function (data) {
            var fd = new FormData($('form')[0]);
            $.ajax({
                type: "POST",
                url: '/admin/adduser.do',
                data: fd,
                async: false,
                cache: false,
                contentType: false,
                processData: false,
                success: function (res) {
                    if (res.status == 200) {
                        layer.msg(res.msg, {time: 2000});
                         var url = "/admin/views/users.html"; // 跳转
                         setTimeout(function () {
                             window.location.href = url
                         },2000);
                    } else {
                        layer.msg(res.msg, {time: 2000});
                    }
                }
            });
            return false; // 这段很关键
        });
           

(2) 然而我的问题不是这个,我访问了两次的后端接口,特别奇怪,对前端进行调试之后发现前端的同事多引用了一遍layui.all.js,也就是说页面要被渲染两次,当然就被提交两次了

<script src="../assets/layui.all.js"></script>
<script src="../assets/layui.all.js" charset="utf-8"></script>
<script src="../jquery.js"></script>
           

删掉一个就可以了

继续阅读