网页动态表单 ,网页动态参数

有的时候因为参数太多  无法  一一 创建   所有采用动态创建   自己遇到的一个实际情况今天写个例子

 

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>form demo</title><link rel="stylesheet" href="https://www.layuicdn.com/layui-v2.5.5/css/layui.css" media="all"><script src="https://www.layuicdn.com/layui-v2.5.5/layui.js"></script><script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<style>.f {float: left;}.f1 {float: left;width: 150px;height: 23px;}.f2 {float: left;width: 90%;height: 23px;}
</style>
</head><body><blockquote class="layui-elem-quote"><h2>动态表单    VX:Internetquant  </h2><div class="layui-form layuimini-form"><!-- <form action="" method="post"> --><div class="layui-form-item"><table class='layui-table'><thead><tr><th>数据</th></tr></thead><tbody id="form_data"><!-- <tr><td><p class="f">表单类型:</p><select name="input_type" lay-ignore class="f1 input_type"><option value=""></option><option value="hidden">隐藏域</option><option value="select" selected>下拉</option><option value="radio">单选按钮</option><option value="text">文本</option><option value="textarea">多行文本</option><option value="file">上传</option><option value="none">非表单</option><option value="editor">富文本</option><option value="checkbox">复选框</option><option value="date">日期</option></select><p class="f">&ensp;&ensp;变量名:</p><input name="name" value="solution_introduction" type="text"class="f1 name" /><p class="f">&ensp;&ensp;描述:</p><input name="description" value="解决方案介绍" type="text" class="f1 description" /><br><br><p class="f">&ensp;&ensp;参数数组:</p><input name="data" value='{"value":"123","class":"ffa"}' type="text" class="f2 data" /></td></tr> --></tbody><tfoot></tfoot></table></div><div class="layui-form-item"><button class="layui-btn" lay-submit lay-filter="autoform" onclick="form_save()">立即提交</button>&ensp;&ensp;&ensp;&ensp;&ensp;&ensp;<button type="button" class="add_tr layui-btn">增加配置行</button></div><!-- </form> --></div></blockquote></body><script>
//初始化数据   有问题可以联系我  VX:Internetquant
var data ='[{"input_type":"select","name":"solution_introduction","description":"初始111","value":"123","class":"ffa","data":{"name":"xxx","value":"value"}},{"input_type":"text","name":"solution_introduction","description":"初始2222","value":"123","class":"ffa"}]';console.log(data)var data_array=JSON.parse(data);for(let item in data_array){var ini_select_data="";var ini_input_type="";var ini_name="";var ini_description="";var ss={};for(let it in data_array[item]){//console.log(it,'----',data_array[item][it])if(it=="input_type"){ini_input_type=data_array[item][it];continue}if(it=="name"){ini_name=data_array[item][it];continue}if(it=="description"){ini_description=data_array[item][it];continue}ss[it]=data_array[item][it];}//=========var trx='';if(ini_input_type=="hidden"){trx+='<option value="hidden" selected>隐藏域</option>';}else{trx+='<option value="hidden">隐藏域</option>';}if(ini_input_type=="select"){trx+='<option value="select" selected>下拉</option>';}else{trx+='<option value="select">下拉</option>';}if(ini_input_type=="radio"){trx+='<option value="radio" selected>单选按钮</option>';}else{trx+='<option value="radio">单选按钮</option>';}if(ini_input_type=="text"){trx+='<option value="text" selected>文本</option>';}else{trx+='<option value="text">文本</option>';}if(ini_input_type=="textarea"){trx+='<option value="textarea" selected>多行文本</option>';}else{trx+='<option value="textarea">多行文本</option>';}if(ini_input_type=="file"){trx+='<option value="file" selected>上传</option>';}else{trx+='<option value="file">上传</option>';}if(ini_input_type=="none"){trx+='<option value="none" selected>非表单</option>';}else{trx+='<option value="none">非表单</option>';}if(ini_input_type=="editor"){trx+='<option value="editor" selected>富文本</option>';}else{trx+='<option value="editor">富文本</option>';}if(ini_input_type=="checkbox"){trx+='<option value="checkbox" selected>复选框</option>';}else{trx+='<option value="checkbox">复选框</option>';}if(ini_input_type=="date"){trx+='<option value="date" selected>日期</option>';}else{trx+='<option value="date">日期</option>';}//=========var tr_data=`<tr><td><p class="f">表单类型:</p><select name="input_type" lay-ignore class="f1 input_type">`+trx+`</select><p class="f">&ensp;&ensp;变量名:</p><input name="name" value="`+ini_name+`" type="text"class="f1 name" /><p class="f">&ensp;&ensp;描述:</p><input name="description" value="`+ini_description+`" type="text" class="f1 description" /><br><br><p class="f">&ensp;&ensp;参数数组:</p><input name="data" value='`+JSON.stringify(ss)+`' type="text" class="f2 data" /></td></tr>`;$('.layui-table').append(tr_data);}function form_save(){var form_array=[];var trList = $("#form_data").children("tr");for (var i=0;i<trList.length;i++) {var tdArr = trList.eq(i).find("td");var ss={};ss.input_type=tdArr.eq(1).find(".input_type").val();ss.name=tdArr.eq(1).find(".name").val();ss.description=tdArr.eq(1).find(".description").val();if(ss.name==""){alert('序号'+i+1+':变量名不能为空')return;}try {var data=JSON.parse(tdArr.eq(1).find(".data").val());for(var [key,value] of Object.entries(data)){//console.log(key,value)if(key=="input_type"){continue}if(key=="name"){continue}if(key=="description"){continue}ss[key]=value;}} catch(e) {console.log('序号',i+1,':参数数组异常', e.message)alert('序号'+i+1+':参数数组异常'+ e.message)return;}form_array.push(ss);}console.log(form_array);var cc=JSON.stringify(form_array);     //字符串就可以提交使用了console.log(cc);console.log(JSON.parse(cc));}layui.use(['form', 'layer'], function () {var form = layui.form, ilayer = layui.layer;$ = layui.$;$(function () {$('.layui-table').attr({ 'lay-size': 'sm', 'lay-skin': 'line' })$('.layui-table thead tr th:last').after("<th style=\"width: 80px;\">操作</th>")$('.layui-table thead tr th:first').before("<th>序号</th>")$('.layui-table tbody tr').each(function (i) {$(this).find('td:first').before('<td>' + (i + 1) + '</td>')//渲染序号$(this).find('td:last').after('<td> <button type="button" class="del_tr layui-btn layui-btn-danger layui-btn-sm">删除</button></td>')})//添加行$('.add_tr').bind('click', function () {var tbody_dom = $('.layui-table').find('tbody');var newtr = tbody_dom.find('tr:last').clone();var aa = tbody_dom.find('tr:last').after(newtr);tbody_dom.find('tr').each(function (i) {// tbody_dom.find('tr:eq(' + i + ') td:eq(1) input').attr(site_config[" + i + "][name])  //// tbody_dom.find('tr:eq(' + i + ') td:eq(2) input').attr(site_config[" + i + "][title])  //// tbody_dom.find('tr:eq(' + i + ') td:eq(3) select').attr(site_config[" + i + "][type])  //tbody_dom.find('tr:eq(' + i + ') td:first').html(i + 1)//渲染序号})//新增行input重置为空tbody_dom.find('tr:last td:eq(1) input').val('');tbody_dom.find('tr:last td:eq(2) input').val('');tbody_dom.find('tr:last td:eq(3) select').val('');form.render();})//删除行$('table.layui-table tbody').on('click', 'tr td .del_tr', function () {var tbody_dom = $(this).parents('tbody');var cnt = 0;tbody_dom.find('tr').each(function (i) {cnt++;})if (cnt <= 1) {layer.alert('至少保留一行数据');return false;}$(this).parents('tr').remove();tbody_dom.find('tr').each(function (i) {tbody_dom.find('tr:eq(' + i + ') td:first').html(i + 1)//渲染序号})})})});</script></html>

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

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

相关文章

Vit 实战营 Class2:图像与Transformer基础

文章目录 数组图像&#xff1a;图像与像素图像分类&#xff1a;机器如何学习&#xff1f;NMT&#xff1a;Neuron Machine TranslationTransformerVision Transformer代码实战 数组图像&#xff1a;图像与像素 什么是数字图像&#xff1f;在计算机图像的图像格式。每一个点叫pix…

工欲善其事,必先利其器之—react-native-debugger调试react native应用

调试react应用通常利用chrome的inspector的功能和两个最常用的扩展 1、React Developer Tools &#xff08;主要用于debug组件结构) 2、Redux DevTools &#xff08;主要用于debug redux store的数据&#xff09; 对于react native应用&#xff0c;我们一般就使用react-nativ…

ClickHouse

资料来源&#xff1a;尚硅谷ClickHouse 官方文档&#xff1a;什么是ClickHouse&#xff1f; | ClickHouse Docs 一、ClickHouse入门 1.1 ClickHouse特点 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用 C语言编…

力扣算法数学类—Excel表列名称

目录 Excel表列名称 题解&#xff1a; 代码&#xff1a; Excel表列名称 168. Excel表列名称 - 力扣&#xff08;LeetCode&#xff09; 给你一个整数 columnNumber &#xff0c;返回它在 Excel 表中相对应的列名称。 例如&#xff1a; A -> 1 B -> 2 C -> 3 ... Z -…

TCP的三次握手与四次挥手

目录 三次握手过程理解 四次挥手过程理解 常见问题 源码等资料获取方法 序列号seq&#xff1a;占4个字节&#xff0c;用来标记数据段的顺序&#xff0c;TCP把连接中发送的所有数据字节都编上一个序号&#xff0c;第一个字节的编号由本地随机产生&#xff1b;给字节编上序号…

itheima苍穹外卖项目学习笔记--Day8: 用户下单 / 微信支付

Day8&#xff1a;用户下单、微信支付 Day8&#xff1a;用户下单、微信支付a. 用户下单b. 微信支付 Day8&#xff1a;用户下单、微信支付 a. 用户下单 创建OrderController并提供用户下单方法&#xff1a; /*** 用户下单* param ordersSubmitDTO* return*/ PostMapping("…

基于深度学习的高精度线路板瑕疵目标检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度线路板瑕疵目标检测系统可用于日常生活中来检测与定位线路板瑕疵目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的线路板瑕疵目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

深度学习模型:Pytorch搭建ResNet、DenseNet网络,完成一维数据分类任务

2023.7.17 DenseNet和ResNet都是深度学习中常用的网络结构&#xff0c;它们各有优缺点。 DenseNet的优点是可以充分利用网络中的信息&#xff0c;因为每个层都可以接收来自前面所有层的信息。这种密集连接的结构可以提高网络的准确性&#xff0c;减少过拟合的风险。此外&…

DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb

DBeaver连接华为高斯数据库 DBeaver连接Gaussdb数据库 DBeaver connect Gaussdb 一、概述 华为GaussDB出来已经有一段时间&#xff0c;最近工作中刚到Gauss数据库。作为coder&#xff0c;那么如何通过可视化工具来操作Gauss呢&#xff1f; 本文将记录使用免费、开源的DBeaver来…

Python迭代器与生成器

文章目录 迭代器创建迭代器StopIteration 生成器 迭代器 访问集合元素的一种方式&#xff0c;可以记住遍历的位置的对象 从集合的第一个元素开始&#xff0c;直到所有的元素被访问完结束&#xff0c;迭代器只能往前不会后退 iter()&#xff0c;创建迭代器对象 iter(object, …

matlab滤波器设计-IIR滤波器的设计与仿真

matlab滤波器设计-IIR滤波器的设计与仿真 1 引言 在现代通信系统中&#xff0c;由于信号中经常混有各种复杂成分&#xff0c;所以很多信号的处理和分析都是基于滤波器而进行的。但是&#xff0c;传统的数字滤波器的设计使用繁琐的公式计算&#xff0c;改变参数后需要重新计…

AlienSwap 首期 Launchpad — 粉丝偶像女团 NFT+RWA 的创新探索

NFT 是整个加密市场一致看好&#xff0c;并认为会继续爆发的领域。随着更多的 NFT 平台和 NFT 项目的推出&#xff0c;NFT 市场的格局也在不断变化。从开始的 OpenSea 占据领先地位&#xff0c;到 Blur 的横空出世风头无两&#xff0c;在加密领域&#xff0c;局势更迭总是在不经…