layui+表格+表单,新增一条记录,实例

这篇博客介绍了如何使用layui框架,在表格中结合表单实现新增记录的功能。通过点击添加按钮,弹出输入框填写信息,然后提交到后台。文章详细展示了layui的table和form模块的用法,包括表格渲染、开关按钮监听、新增记录的表单提交等。同时,提供了HTML和JavaScript代码示例,展示了如何处理数据和显示、编辑、删除操作。
摘要由CSDN通过智能技术生成

layui+表格+表单,新增一条记录,实例

<div class="layui-btn-group tui-all-showUrl-add">
  <button type="button" class="layui-btn layui-btn-sm">
    <i class="layui-icon">&#xe654;</i>
  </button>
</div>
  
<table class="all-users layui-col-xs" id="tui-all-showUrl" lay-filter="tui-all-showUrl"></table>
<script type="text/html" class="all-users-caozuo" id='caozuofff'>
  <a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
  <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>

<script type="text/javascript">


layui.use(['table','layer', 'form'], function(){
	var table = layui.table,form = layui.form;
	var colsSetData=[
		{type:'numbers', title: '序号'},
		{field:'guishu_ren', width:80, title: '姓名'},
		{field:'url', width:580, title: '落地页链接',event:'setSign'}
		,{field:'luodiye_zhuti', width:180, title: '落地页内容'}
		,{field:'create_time', width:110, title: '创建时间'}
		,{title: '是否显示', width:90,templet: function (d) {
			let checkbox_is='checked';
			//console.log(d.display)
			
            if(d.display != '1'){
				checkbox_is ='';
			}
			 return `<div class='layui-form'><input type='checkbox' value="${d.guishu_ren}" data-url="${d.url}"  ${checkbox_is} name='isValid' lay-filter='isValid'  lay-skin='switch' lay-text='是|否' ></div>`;
            }
		}
      ]
      //colsSetData[7]={title: '操作222',toolbar: '.all-users-caozuo'}
     // console.log(colsSetData[6])
   var tableId = "tui-all-showUrl";
 var tableIns = table.render({
    elem: '#'+tableId
    ,method:'post'
    //,size: 'sm'
    //,toolbar: 'default'
    //,totalRow:false
    ,id:tableId
    ,where: { leixing: 'select'}//接口的其它参数
    ,url:url_h
    ,cellMinWidth: 50 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
    //,width:1000
    ,cols: [colsSetData]
    ,page: false
    , limit: 100 //默认分页条数
    ,done: function(res, curr, count){
	    //如果是异步请求数据方式,res即为你接口返回的信息。
	    //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
	    //console.log(res);
	    //console.log( res.data[0]['name'] )
	   //$('td').css({ 'height': 'auto','overflow': 'visible','text-overflow': 'inherit', "white-space":"normal" ,"word-break":"break-all" })
	   
	    }
	  //,skin: 'nob' //行边框风格 row line nob
      ,even: true //开启隔行背景
  });
  
 

  
  //监听 开关按钮
  form.on('switch(isValid)', function(data){
    	var checked = data.elem.checked;
        //条件成立后才更改
        data.elem.checked = !checked;
        form.render();
    
		layer.confirm(data.value+data.elem.dataset.url+'确定启用吗?', {
		   btn: ['确定', '取消'] //按钮
		   ,yes: function(index){
   	 	// 此时进行ajax的服务器访问,如果返回数据正常,则进行后面代码的调用 
   	 	//console.log('按钮确定')
        data.elem.checked = checked;
        form.render();
        layer.close(index);
        //按钮【按钮一】的回调
	    }
	    ,btn2: function(index){
	        //按钮【按钮二】的回调
	       // console.log('按钮取消取消')
	        data.elem.checked=!checked;
	        form.render();
	        layer.close(index);
	        //return false; //开启该代码可禁止点击该按钮关闭
	    	}
		})
    });
  //监听 开关按钮 end 
  
 
//Demo
  
  
  // 添加 新的 一个记录
  form.on('submit(demo1)', function(data){
   // layer.msg(JSON.stringify(data.field));
   // return false;
    
    var faData= {};
    faData = data.field;  	
  //	console.log(faData)
    $.ajax({
        type: 'post',
        dataType : "json",
        async:true,
        url: url_h_q,
        data: faData,
        success: function (res) {
         //var indexform = parent.layer.getFrameIndex(window.name); 
         //console.log(form)
        // layer.close(indexform);
            if (res.status == '200' ) {
            	if(res.addNum =='1'){
            		
	            var oldData = table.cache[tableId];
		        //将新行插入表格数据中
		        faData['display'] = 1;
		        oldData.push(faData);
		        //如果原table渲染时指定了数据url
		        //重载时需要设置url: null
		        //使用新数据重载表格
		        tableIns.reload({
		            url: null,
		            data: oldData
		        });
            		layer.msg('fkkkkkkk', {icon: 1,closeBtn: 0 }, function (index) {
                   // layer.close(index);
                    layer.closeAll();
                  });
            	}                 
                     
            } else {
            	//alert(res)
                layer.alert(res.error, {icon: 5,closeBtn: 0}, function (index) {
                   layer.close(index);
                });
            }
        }
    });
    return false;
    
  });
// 添加 新的 一个记录 end

  
  // 新增一行 弹出输入框
  $(".tui-all-showUrl-add").on("click", function(data) {
  	layer.open({
	  type: 1, 
	  area: ['900px', '600px'],
	  skin: 'layui-layer-tui-all-showUrl-add',
	  title:'请选择',
	  content: $('.add-tui-all-showUrl-form') //这里content是一个普通的String
	  //,btn: ['确定','取消']
	  //,shadeClose: true
	  ,success:function(layero){
		var mask = $(".layui-layer-shade");
		mask.appendTo(layero.parent());
		 //其中:layero是弹层的DOM对象
		}
		// ,yes:function(layero){
		
		// }
	});
	 
  });
  //新增一行 弹出输入框 end
});


</script>

<div class="layui-col-md11 add-tui-all-showUrl-form" style="display:none;" >
 <form class="layui-form "  lay-filter="example" style="margin-top: 15px;">
  <div class="layui-form-item">
    <label class="layui-form-label">归属者</label>
    <div class="layui-input-block">
      <select name="guishu_ren" lay-filter="guishu_ren" lay-verify="guishu_ren|required">
        <option value=""></option>
        <option value="xxxfff">xxxfff</option>
      </select>
    </div>
  </div>
  <div class="layui-form-item">
    <label class="layui-form-label">链接</label>
    <div class="layui-input-block">
      <input type="text" name="url" lay-verify="url|required"  placeholder="落地页链接" class="layui-input"  >
    </div>
  </div> 
  
  
  <div class="layui-form-item">
    <label class="layui-form-label">提交时间</label>
    <div class="layui-input-inline" style="width:100px;">
      <input type="text"   name="create_time"  autocomplete="off" placeholder="日期"  lay-verify="date" class="layui-input layui-time-day">
    </div>    
  </div>  
  
  
  <div class="layui-form-item">
    <div class="layui-input-block">
      <button type="submit" class="layui-btn" lay-submit="" lay-filter="demo1"  >立即提交</button>
      <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
  </div>
</form>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值