layui form表单 动态添加、删除input框,以及数据回显

在form表单中,动态增加input框,最多添加5个,删除校验

html代码

<form class="layui-form" th:action="@{/basicInfo/update/project}" method="post">
		<div class="layui-form-item" id="last">
		     <label class="layui-form-label">开发项目核准名</label>
		     <div class="layui-input-inline">
		         <input type="text" id="projectApprovalName" name="projectApprovalName" lay-verify="required" placeholder="请输入" autocomplete="off" class="layui-input input-double-width">
		         <input class="layui-input" type="hidden" id="id" name="id"  th:value="${estateInfo.id}">
		     </div>
		     <div class="layui-input-inline" style="margin-left: 180px">
		         <button id="add" type="button" class="layui-btn layui-btn-warm layui-btn-sm">
		             <i class="layui-icon">&#xe654;</i>
		         </button>
		     </div>
		     <span class="layui-word-aux">备注:最多添加5个项目核准名,每个长度为2-15个字符</span>
		 </div>
</form>

js代码

<script type="text/javascript" th:inline="javascript">
    layui.use([ 'layer', 'upload'], function () {
        var $ = layui.jquery;
        var layer = layui.layer; //加载layer模块
        var upload = layui.upload;  //加载upload模块
        var id = $("#id").val();
        var basePath=[[${#httpServletRequest.getContextPath()}]];

    //动态添加input输入框
    var max = 5;
    var x = 1;
    $("#add").click(function(){
        if(x<max){
            var str =  '<div class="layui-form-item">'+
                '<label class="layui-form-label"></label>'+
                '<div class="layui-input-inline">'+
                    '<input type="text" name="projectApprovalName" class="layui-input input-double-width">'+
                '</div>'+
                '<div class="layui-input-inline" style="margin-left: 180px">'+
                    '<button type="button" class="layui-btn layui-btn-danger layui-btn-sm removeclass"><i class="layui-icon">&#xe67e;</i></button>'+
                '</div>'+
            '</div>';

            $("#last").append(str);
            x++;
        }else {
            layer.msg("最多添加5条信息",{icon:2});
        }
    });

    //删除动态添加的input输入框
    $("body").on('click',".removeclass",function(){
        if(x>1){
            //元素移除前校验是否被引用
            var approvalName = $(this).parent().prev('div.layui-input-inline').children().val();
            var parentEle = $(this).parent().parent();
            $.ajax({
                url:basePath+'/basicInfo/findByApprovalNameAndEstateId',
                type:"get",
                data:{'id':id,'projectApprovalName':approvalName},
                dataType:"json",
                success:function(res){
                    if(res.code!==200){
                        layer.msg('项目核准名 '+approvalName+' 已被引用,禁止删除', {icon: 2, title:'提示'});
                    }else {
                        //移除父元素
                        parentEle.remove();
                        x--;
                    }
                }
            });
        }
    });
    //动态回显input值
    var approvalNameStr = [[${estateInfo.projectApprovalName}]];
    var approvalNameArr = approvalNameStr.split(',');
    $.each(approvalNameArr,function (i,json) {

        if(i===0){
            $("#projectApprovalName").val(json);
        }

        if(i>0){
            var str =  '<div class="layui-form-item">'+
                '<label class="layui-form-label"></label>'+
                '<div class="layui-input-inline">'+
                '<input type="text" name="projectApprovalName" value="'+json+'" class="layui-input input-double-width">'+
                '</div>'+
                '<div class="layui-input-inline" style="margin-left: 180px">'+
                '<button type="button" class="layui-btn layui-btn-danger layui-btn-sm removeclass"><i class="layui-icon">&#xe67e;</i></button>'+
                '</div>'+
                '</div>';
            $("#last").append(str);
        }

        x=i+1;
    });
  })
</script>
根据提供的引用内容,使用layui表单select实现数据回显的方法如下: 首先,在html中定义下拉列表的结构,在每个select标签中添加name属性和lay-filter属性,用于后续的监听事件。 接着,在JavaScript中使用form.on("select")函数监听下拉列表的选择事件,并根据选择的值进行相应的操作。在数据回显的时候,只需要选择默认第一个value即可。通过设置select标签的value属性为默认值即可实现数据回显。 以下是一个基于layui的下拉列表数据回显的示例代码: ``` <div class="layui-form-item"> <label class="layui-form-label">设备位置 省</label> <div class="layui-input-inline"> <select name="provinceCode" id="provinceCode" lay-filter="provinceCode"> <!--省份选项--> </select> </div> <label class="layui-form-label">市</label> <div class="layui-input-inline"> <select name="cityCode" id="cityCode" lay-filter="cityCode"> <!--市级选项--> </select> </div> <label class="layui-form-label">区</label> <div class="layui-input-inline"> <select name="districtCode" id="districtCode" lay-filter="districtCode"> <!--区域选项--> </select> </div> </div> ``` ```javascript // layui form select监听事件 form.on("select", function(data){ // 根据data.value进行相应的操作 }); // 数据回显,设置select标签的value属性为默认值 $("#provinceCode").val("省份默认值"); $("#cityCode").val("市级默认值"); $("#districtCode").val("区域默认值"); ``` 通过以上的方法,就可以实现基于layui的下拉列表数据回显。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [基于layui的下拉列表的数据回显方法](https://download.csdn.net/download/weixin_38677227/12936066)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [layui select 数据回显](https://blog.csdn.net/java__project/article/details/103186402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值