Layui select 动态绑定数据多个数据 (通过form.on获取)

本文介绍了一篇关于使用layui库进行前端表单开发的教程,包括HTML代码中select元素的配置和JS代码中通过Ajax获取数据动态填充选项。重点展示了如何通过laydate插件实现数据交互并更新选中项的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html 代码

<form>
<select name="select1" id="select1" lay-verify="required" lay-search="" lay-filter ="select1">
 <option value="">直接选择或搜索选择</option>
</select>
</form>

js代码

<script type="text/javascript">
    layui.use('laydate', function () {
        let form = layui.form;
        let data = {
            "current": 1,
            "size": 500
        };
        $.ajax({
            url: '/kar/xxx/list',
            dataType: 'json',
            type: 'get',
            data: data,
            success: function (data) {
                if (data) {
                    let rows = data.rows;
                    if (rows) {
                        let content = '';
                        $.each(rows, function (index, item) {
                            content += '<option value="'+item.code+'" data-name="'+item.depar+'">'+item.name+':'+ item.code+'</option>'
                        });
                        $('#select1').append(content);
                        //重新渲染 固定写法
                        layui.form.render("select");
                    }
                }
            }
        });
        form.on('select(select1)', function (r) {
            //业务部门
            let countryEn = $(r.elem).find("option:selected").attr("data-name");
            $("#name").val(countryEn);
        });
        form.render();
    });
</script>

仅供参考

### 使用 Layui 框架调用 API 接口获取数据并渲染 Select 下拉框 #### 创建 HTML 结构 首先,在页面上创建一个用于显示选项的 `select` 元素: ```html <select id="testSelect" lay-filter="onClickSelected"></select> ``` 此部分定义了一个具有唯一 ID (`testSelect`) 的下拉菜单,并设置了过滤器属性以便后续监听其变化事件。 #### 加载必要的资源文件 确保已经加载了 Layui 所需的核心 CSS 和 JS 文件,通常可以通过 CDN 或本地路径来完成这一步骤[^4]。 #### 初始化 JavaScript 逻辑 接下来编写一段脚本来处理接口请求以及更新 DOM 中的选择项。这里假设存在名为 `getDataFromApi()` 函数负责发起 HTTP 请求并与服务器交互获得 JSON 格式的响应体;之后再利用这些信息动态填充 `<option>` 标签至目标容器内。 ```javascript // 假设这是从API接收到的数据结构 var jsonData = [ {"value": "1", "name": "Option One"}, {"value": "2", "name": "Option Two"} ]; function renderOptions(selectId, data){ var $el = document.getElementById(selectId); // 清空原有内容 while ($el.firstChild) { $el.removeChild($el.firstChild); } // 添加新的 option 元素 for (let i=0; i<data.length; ++i){ let opt = document.createElement("OPTION"); opt.value = data[i].value; opt.text = data[i].name; $el.appendChild(opt); } // 刷新表单组件以反映更改后的DOM状态 layui.form.render(); } renderOptions('testSelect', jsonData); layui.use(['form'], function(){ var form = layui.form; // 绑定 change 事件处理器给指定名称的空间 form.on('select(onClickSelected)', function(data){ console.log(data.elem); // 得到当前选中的整个元素对象 console.log(data.value); // 获取被选中的值 console.log(data.othis); // 当前操作的对象(即点击的那个) // 这里可以放置更多业务逻辑... }); }); ``` 上述代码片段展示了如何使用 Layui 来增强标准 HTML 表单控件的功能,同时保持良好的用户体验。当用户做出选择时触发相应的回调函数执行自定义的操作流程[^1]。 #### 发起 AJAX 请求获取远程数据 为了使例子更加贴近实际应用场景,下面给出了一种基于 jQuery 库发送异步 GET 请求的方式去取得远端服务提供的最新资料集,并将其传递给之前提到过的 `renderOptions()` 方法来进行视图刷新。 ```javascript $.ajax({ url: '/api/v1/options', type: 'GET', success: function(response){ if(Array.isArray(response)){ renderOptions('testSelect', response); }else{ alert('Invalid Data Format'); } }, error: function(xhr,status,errorThrown){ console.error(errorThrown); } }); ``` 请注意,具体 URL 地址应根据实际情况调整,而且考虑到安全性因素建议采用 HTTPS 协议传输敏感信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值