layui 表单动态添加、删除input框

在这里插入图片描述
html部分

<div class="layui-form-item" ><label class="layui-form-label">路线</label><div class="layui-input-block" id="last"><div class="layui-input-inline">{empty name="$ways"}<div class="layui-form-item"><div class="layui-input-inline"><input type="text" name="ways[]" placeholder="请输入"autocomplete="off" class="form-control" style="width: 200%;"></div><div class="layui-input-block" style="margin-left: 480px"><button id="add" type="button" class="layui-btn layui-btn-warm layui-btn-sm"><i class="layui-icon">&#xe654;</i></button></div></div>{else /}<!-- 循环列出数据 -->{volist name="ways" id="vo"}<div class="layui-form-item"><div class="layui-input-inline"><input type="text" name="ways[]" lay-verify="required" value="{$vo.name}"class="form-control" style="width: 200%;"></div><div class="layui-input-block" style="margin-left: 480px"><button type="button"class="layui-btn layui-btn-danger layui-btn-sm removeclass"><iclass="layui-icon">&#xe67e;</i></button></div></div>{/volist}<div class="layui-form-item"><div class="layui-input-inline"><input type="text" name="ways[]" placeholder="请输入"autocomplete="off" class="form-control" style="width: 200%;"></div><div class="layui-input-block" style="margin-left: 480px"><button id="add" type="button" class="layui-btn layui-btn-warm layui-btn-sm"><i class="layui-icon">&#xe654;</i></button></div></div>{/empty}</div></div>
</div>

js部分

layui.use(['element', 'jquery', 'layer', 'form', 'laydate'], function () {var form = layui.form, element = layui.element, laydate = layui.laydate, $ = layui.$;//动态添加input输入框$("#add").click(function () {var str = '<div class="layui-form-item">' +'<div class="layui-input-inline">' +'<input type="text" name="ways[]" lay-verify="required"' +'class="form-control" style="width: 200%;">' +'</div>' +'<div class="layui-input-block" style="margin-left: 480px">' +'<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++;});//删除动态添加的input输入框$("body").on('click', ".removeclass", function () {//元素移除前校验是否被引用var approvalName = $(this).parent().prev('div.layui-input-inline').children().val();var parentEle = $(this).parent().parent();parentEle.remove();});
})

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>

----------------------------------------------------------------------自己的项目--------------------------------------------------------------------------
在这里插入图片描述

<div class="layui-form-item" ><label class="layui-form-label" style="width: 90px;">服务器ip端口</label><div class="layui-input-block" id="last2"><div class="layui-input-inline"><div class="layui-form-item"><div class="layui-input-inline" style="width: 151px;!important;" ><input type="text" name="ways[]"class="layui-input"  required lay-verify="required"  autocomplete="off" class="form-control" style="width: 200%;"></div><div class="layui-input-block" style="margin-left: 310px"><button id="add2" type="button" class="layui-btn layui-btn-warm layui-btn-sm"><i class="layui-icon">&#xe654;</i></button></div></div></div></div></div>
//layui 表单动态添加、删除input框  ---start//动态添加input输入框var x = 1;$("#add2").click(function () {var str = '<div class="layui-form-item"  style="margin-left: 10px;"   > ' +'<div class="layui-input-inline" style="width: 151px;!important;">' +'<input type="text" name="ways[]" lay-verify="required"' +'class="form-control layui-input" style="width: 200%;"   >' +'</div>' +'<div class="layui-input-block" style="margin-left: 310px">' +'<button type="button" class="layui-btn layui-btn-danger layui-btn-sm removeclass"><i class="layui-icon">&#xe67e;</i></button>' +'</div>' +'</div>';$("#last2").append(str);x++;});//删除动态添加的input输入框$("body").on('click', ".removeclass", function () {//元素移除前校验是否被引用var approvalName = $(this).parent().prev('div.layui-input-inline').children().val();var parentEle = $(this).parent().parent();parentEle.remove();});//---------end----------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 可重复读,差点就让我背上了一个 P0 事故!

来源 |程序通事责编 | Carol封图 | CSDN 付费下载自视觉中国P0 事故&#xff1a;余额多扣&#xff01;这是一个真实的生产事件&#xff0c;事件起因如下&#xff1a;现有一个交易系统&#xff0c;每次产生交易都会更新相应账户的余额&#xff0c;出账扣减余额&#xff0c;入账增…

AliOS Things 3.0应用笔记:摄像头配网 + 钉钉群通知 + 天气显示

给AliOS Things一颗STAR 目录 运行流程效果展示 操作流程 环境配置源码结构配置烧录运行 源码讲解 QR扫码部分GUI部分https client部分 运行流程 本示例有如下3个功能&#xff1a; 摄像头配网。推送消息到钉钉群。显示当天天气。操作流程 环境配置 AliOS Things环境安装&a…

与阿里合伙人合影,两年净赚一百万,这个草根姑娘有什么魔力?

大学肄业&#xff0c;网店关闭&#xff0c;公司转手&#xff0c;人生的下一步要怎么走&#xff1f;张昕总沉浸在自己的世界里发呆。 直到两年前&#xff0c;张昕随手往几个群里转发了“购买阿里云服务器”的折扣幸运券&#xff0c;半年后&#xff0c;因订单数量排进前十&#…

借助大数据进行社交媒体营销,企业们得这么玩!

作者 | Annie Qureshi译者 | 火火酱&#xff0c;责编 | Carol出品 | CSDN 云计算&#xff08;CSDNcloud&#xff09;封图 | CSDN 付费下载自视觉中国自上世纪80年代以来&#xff0c;“数据”一词就一直是互联网行业的重要术语。随着人们对数字领域的关注度越来越高&#xff0c;…

聊一聊DNS劫持那些事

作为《DNS攻击防范科普系列》的最后一篇&#xff0c;今天我们来好好聊聊DNS劫持。先回顾一下DNS劫持的概念&#xff1f;DNS劫持即通过某种技术手段&#xff0c;篡改正确域名和IP地址的映射关系&#xff0c;使得域名映射到了错误的IP地址&#xff0c;因此可以认为DNS劫持是一种D…

nacos集成dubbo实现远程服务调用多服务端2

文章目录一、版本选取、需求和项目简述1. 版本选取2. 项目模块说明2. 需求说明二、需求实战-依赖初始化2.1. 创建maven父工程EShopParent2.2. 创建子模块DubboApi2.3. 创建服务端Stock-serv2.4. 创建服务端product-serv2.5. 创建消费端端Order-serv三、需求实战-代码编写3.1. 创…

避开这2个误区,测试目标 KPI 不再难设

阿里妹导读&#xff1a;好的开始是成功的一半&#xff01;工作中&#xff0c;目标的设置是最不能马虎的事情。今天&#xff0c;我们请来孙阳&#xff08;阿里巴巴测试开发专家&#xff09;&#xff0c;他从11年入职至今已有8年。在测试技术目标的KPI设置上&#xff0c;他有一些…

程序员工作3年只涨2千,你不知道程序员有多难!

最近在职业论坛看到这样一个热门的帖子&#xff1a;工作3年&#xff0c;薪资涨了2k。大家都在吐槽公司的不公&#xff0c;却忽略了从另一个角度看待问题&#xff1a;是不是因为我们本身做的不够好&#xff1f;越来越发现&#xff0c;很多人之所以很久没有涨薪&#xff0c;是因为…

蚂蚁金服OceanBase挑战TPCC丨TPC-C基准测试之链路层优化

导语 在 TPC-C 标准定义中&#xff0c;测试系统分为 RTE&#xff08;Remote Terminal Emulator&#xff09;和 SUT 两部分。在实际的 TPC-C 测试流程中&#xff0c;不只是对 DB 端能力的考验&#xff0c;对链路中的所有组件都存在极大的资源消耗和压力。以这次 6088万 tpmC 测…

由于找不到msvcp140.dll无法继续执行代码

下载安装微软常用运行库合集即可解决 https://www.cr173.com/soft/106037.html

知己知彼,百战百胜!如何做好干系人管理

作者|章冀灶(晟远) 出品|阿里巴巴新零售淘系技术部 众所周知&#xff0c;高效的沟通是项目成败重要的影响因素。沟通在项目管理过程中扮演了极其重要的作用&#xff0c;而沟通对象又是完整的基于项目干系人&#xff0c;所以在项目管理过程中干系人管理就显得尤为重要&#xff…

彻底弄懂为什么不能把栈上分配的数组(字符串)作为返回值

背景 最近准备一个教程&#xff0c;案例的过程中准备了如下代码碎片&#xff0c;演示解析http scheme #include <stdio.h> #include <stdlib.h> #include <string.h>char *parse_scheme(const char *url) {char *p strstr(url,"://");return st…

健壮F.T.+新裸金属重磅发布!全新升级版ZStack加速新基建!

6月2日&#xff0c;以“健壮F.T.新裸金属 新基建下的新IaaS”为主题的2020年ZStack新品线上超级发布会引爆了企业级云市场。面向新基建发展契机&#xff0c;致力于普惠云计算的ZStack与英特尔、阿里云等伙伴强势携手发布2大重磅新品&#xff1a;首个采用了F.T.技术的ZStack Min…

使用datax同步cassandra数据

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;实现各种异构数据源之间高效的数据同步功能。最近&#xff0c;阿里云cassandra团队为datax提供了cassandra读写插件&#xff0c;进一步丰富了datax支持的数据源&#xff0c;可以很方便实现cassandra之间以…

整理了一份 Docker系统知识,从安装到熟练操作看这篇就够了 | 原力计划

作者 | IronmanJay责编 | 王晓曼出品 | CSDN博客Docker 基础介绍下图为 Docker 图标&#xff08;是一个鲸鱼上面是集装箱&#xff09;。1、我们为什么要使用Docker当我们在工作中&#xff0c;一款产品从开发设计到上线运行&#xff0c;其中需要开发人员和运维工程师&#xff0c…

阿里巴巴的云原生与开发者

摘要&#xff1a;利用云原生技术构建应用简便快捷&#xff0c;部署应用轻松自如&#xff0c;运行应用按需伸缩。如今&#xff0c;云原生已经成为下一代技术发展的趋势。在 2019 杭州云栖大会开发者峰会上&#xff0c;阿里巴巴资深技术专家李响就为大家分享了阿里巴巴的云原生技…

(企业案例)使用Nacos持久化规则,改造sentinel-dashboard

文章目录一、前言1. 版本选取2. 克隆代码3. 导入 IDEA二、全局修改2.1. 修改 POM2.2. 修改配置文件三、后端代码修改3.1. 包结构部分3.2. nacos 配置文件四、创建规则与 Nacos 交互类4.1. 创建授权规则与 Nacos 交互类4.2. 创建降级规则与 Nacos 交互类4.3. 创建流控规则与 Nac…

如何基于 Nacos 和 Sentinel ,实现灰度路由和流量防护一体化

Nepxion Discovery框架在实现灰度发布和路由功能前提下&#xff0c;结合Nacos和Sentinel&#xff0c;对流量再实施一层防护措施&#xff0c;更能达到企业级的流量安全控制的目的。它的功能包括&#xff1a; 封装远程配置中心和本地规则文件的读取逻辑&#xff0c;即优先读取远…

神操作!一行Python代码搞定一款游戏?给力!

来源&#xff1a;pypl编程榜一直以来Python长期霸占编程语言排行榜前三位&#xff0c;其简洁&#xff0c;功能强大的特性使越来越多的小伙伴开始学习Python 。甚至K12的同学都开始学习Python 编程。新手入门的时候趣味性其实最重要的。那么一行Python 代码到底能玩出什么花样&a…

详解阿里云数据中台,一篇文章全面了解大数据“网红”

一直想写一篇关于数据中台正面文章&#xff0c;现在有闲时做些总结&#xff0c;想充分诠释一下DT内部人如何看待数据中台。 数据中台的概念是最早由阿里巴巴首次提出&#xff0c;是为了应对内部众多业务部门千变万化的数据需求和高速时效性的要求而成长起来的&#xff0c;它既要…