layui 表单提交两次

本文介绍了在HTML页面中由于引用了两次layui.js,从而导致页面渲染和表单提交重复的问题。作者通过分析发现,问题源于meta.jsp文件中包含的通用文件引入。为了解决这个问题,作者提出了删除meta.jsp中layui.all.js的引入作为最终解决方案。此外,还提供了参考文章链接,帮助读者更深入理解layui表单提交的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,先展示一下代码


<!DOCTYPE html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%@ include file="/**/meta.jsp"%>
<head>
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <link rel="stylesheet" href="${ctx}/static/css/etl.css" />
    <script type="text/javascript" src="${ctx}/static/layui/layui.js"></script>
</head>
<body>


<form  class="layui-form" action="" id="formfield" >
    <div class=" addwrap">
        <div class="layui-form">
            <input type="hidden" id ="id" name="id"  value="${entity.id}"/>
         
            <div class="layui-form-item">
                <div class="layui-inline  ">
                    <label class="layui-form-label" >核算日期</label>
                    <div class="layui-input-inline" >
                        <input type="text" class="layui-input" id="costdatatime"  name="costdatatime"  value="${costdata}" placeholder="yyyy-MM"  required lay-verify="required">
                    </div>
                    <div class="layui-form-mid layui-word-aux colorred">*</div>
                </div>
            </div>

            <div class="layui-form-item">
                <div class="flex flex-jusity-center flex-align-center height26">
                    <div class=" flex  layui-input-block flex flex-jusity-around  tjbtn" style="margin-top: 20px;">
                        <button class="layui-btn layui-btn-radius layui-btn-sm layui-btn-primary qx">取消</button>
                        <button class="layui-btn layui-btn-radius layui-btn-sm " lay-submit lay-filter="formDemo">保存</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</form>

</body>
<script>
        layui.use(['form','laydate','element'], function() {
            layui.laydate.render({
                elem: '#costdatatime'
                ,type: 'month'
                ,trigger: 'click'
            });
            
            var form = layui.form;
            form.render("select");
            
            form.on('submit(formDemo)', function (data) {
                $.ajax({
                    url: '/**/save',
                    method:'post',
                    data: data.field,
                    dataType:'JSON',
                    success: function (data) {
                        if(data.success){
                            dLong.layerSuccess(data.msg,function () {
                                parent.layer.closeAll();
                                window.parent.search();
                            })
                        }else {
                            dLong.layerError(data.msg,function () {
                            })
                        }
                    }
                });
                return false;
            });
        })


    /*点击取消*/
    $('.qx').on('click', function() {
        parent.layer.closeAll();
    })


</script>
</html>

2,毛病出在哪

因为引入了两次 layui.js,页面被渲染了两次,提交动作也进行了两次。
在这里插入图片描述

3,说说我的问题

在这里插入图片描述
meta.jsp 文件里面放了我经常需要引入的文件,这样的话每次新编写一个页面,我只需要引入这个jsp页面即可,

无需写过多的引入,但是正是这种情况,导致我摸索了半天才发现问题。

4,最终方案

meta.jsp 文件里面的 layui.all.js 引入删除即可

5,其他参考文章

layui 表单提交为什么有两次

layui框架,form提交了两次,问题原因解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值