layUI ajax加载html页面后重新渲染

相关问题同:
1、layUI使用jquery.load加载界面时,如何让layui渲染页面?
2、layUI ajax加载html页面后重新渲染

layUI ajax加载html页面后渲染,关键在将html插到指定位置后重新调用element.init();渲染

$.ajax({
                url : url,
                type : 'GET',
                success : function(data) {
                    $("#layui-tab-title").append("<li class='layui-this'>tab名称</li>");
                    $("#layui-tab-content").append(data);

                    layui.use('element', function() {
                        var element = layui.element;
                        element.init();
                    });
                }
            })

渲染主要在下面element.init();这句

layui.use('element', function() {
        var element = layui.element;
        element.init();
    });

类似的,如果form中的radio没有渲染,则在加载页面添加以下代码亦可解决:

layui.use('form', function() {
        var form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
        form.render();
    });
在使用 Layui 框架开发过程中,若希望实现下拉框(`select`)通过 AJAX 动态加载后端返回的数据,可以按照以下步骤进行操作: ### 1. 页面结构定义 首先,在 HTML 页面中定义一个下拉框元素,确保其 `name` 或 `id` 属性已设置,以便后续通过 JavaScript 操作。例如: ```html <div class="layui-form-item"> <label class="layui-form-label">学校</label> <div class="layui-input-block"> <select name="SchoolId" id="SchoolId" lay-verify="required" lay-filter="SchoolId" lay-search> <option value="">请选择学校</option> </select> </div> </div> ``` ### 2. 引入必要的模块 在 JavaScript 中使用 `layui.use()` 引入 `form` 和 `jquery` 模块,确保可以使用表单渲染AJAX 请求功能: ```javascript layui.use(['form', 'jquery'], function () { var form = layui.form; var $ = layui.jquery; }); ``` ### 3. 发起 AJAX 请求 在 `layui.use()` 中使用 jQuery 的 `$.ajax()` 方法向后端发起请求,获取数据并动态填充到下拉框中: ```javascript $(function () { $.ajax({ url: ctxPath + 'school/selectAll', // 后端接口地址 type: 'POST', async: false, success: function (result) { if (result.code === 0) { var list = result.data; var options = '<option value="">请选择学校</option>'; $.each(list, function (i, item) { options += '<option value="' + item.id + '">' + item.name + '</option>'; }); $('#SchoolId').html(options); form.render('select'); } } }); }); ``` ### 4. 动态渲染与反选 如果需要在页面加载后对下拉框进行反选操作(即默认选中某个值),可以通过 `val()` 方法设置值,并再次调用 `form.render()`: ```javascript $('#SchoolId').val($("#selectedSchoolId").val()); // 设置默认选中 form.render('select'); // 重新渲染下拉框 ``` ### 5. 注意事项 - **异步请求**:确保 AJAX 请求为同步(`async: false`),避免在数据未返回时执行渲染操作。 - **渲染机制**:每次对 `select` 内容进行修改后,必须调用 `form.render('select')` 才能生效。 - **错误处理**:在 `success` 回调中加入错误处理逻辑,防止数据异常导致页面崩溃。 ### 示例代码 以下为完整示例代码: ```javascript layui.use(['form', 'jquery'], function () { var form = layui.form; var $ = layui.jquery; $(function () { $.ajax({ url: ctxPath + 'school/selectAll', type: 'POST', async: false, success: function (result) { if (result.code === 0) { var list = result.data; var options = '<option value="">请选择学校</option>'; $.each(list, function (i, item) { options += '<option value="' + item.id + '">' + item.name + '</option>'; }); $('#SchoolId').html(options); $('#SchoolId').val($("#selectedSchoolId").val()); form.render('select'); } } }); }); }); ``` ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值