layui重新渲染表单组件踩过的坑

layui 当我们修改表单组件的状态时需要重新渲染
当我们需要多次修改radio select 状态时会出现重新渲染不成功的现象

  • 添加元素属性时将attr 换为 prop
下面是一个示例代码,使用layui动态添加下拉框组件,并渲染数据: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>动态添加下拉框组件</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.css"> </head> <body> <div class="layui-form" lay-filter="test"> <div class="layui-form-item"> <label class="layui-form-label">下拉框1</label> <div class="layui-input-inline"> <select name="select1"> <option value=""></option> </select> </div> </div> </div> <button class="layui-btn" id="addSelect">添加下拉框</button> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.js"></script> <script> layui.use(['form', 'jquery'], function() { var form = layui.form; var $ = layui.jquery; // 添加下拉框 $('#addSelect').click(function() { var index = $('.layui-form-item').length; var selectHtml = '<div class="layui-form-item">' + '<label class="layui-form-label">下拉框' + index + '</label>' + '<div class="layui-input-inline">' + '<select name="select' + index + '">' + '<option value=""></option>' + '</select>' + '</div>' + '</div>'; $('.layui-form').append(selectHtml); form.render('select'); }); // 渲染数据 var data = [{ id: 1, name: '选项1' }, { id: 2, name: '选项2' }, { id: 3, name: '选项3' }]; $.each(data, function(index, item) { $('select[name="select1"]').append('<option value="' + item.id + '">' + item.name + '</option>'); }); }); </script> </body> </html> ``` 在这个示例中,我们首先在页面上添加了一个下拉框组件,然后添加了一个按钮,用于动态添加下拉框组件。 当点击添加下拉框按钮时,我们使用jQuery动态生成下拉框组件的HTML代码,并将其添加到页面上的表单中。然后,我们使用layui的form模块的`render`方法重新渲染表单,以使新添加的下拉框组件能够正常工作。 最后,我们还使用jQuery将数据渲染到第一个下拉框组件中。这里我们使用了jQuery的`$.each`方法,遍历数据数组,并使用jQuery的`append`方法将每个数据项添加到下拉框组件中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值