Layui动态添加下拉框Select节点,删除下拉框Select动态节点,追加下拉框Select动态节点

这段代码展示了如何在JavaScript中处理动态添加和删除HTML select元素的选项。当用户选择某个值时,通过Ajax调用接口获取新的选项数据,然后清空现有select元素并追加新数据。功能包括:删除选框及其所有选项,追加新的select元素,并使用layui框架重新渲染表单。
摘要由CSDN通过智能技术生成

应用场景:选项联动。

添加动态节点:

 <div class="layui-inline">
                                    <label class="layui-form-label " style="width:120px">督学主题:</label>
                                    <div class="layui-input-inline" id="YearThreme">
                                        <select id="ThremeType" name="ThremeType" lay-filter="Thremetype">
                                            @foreach (var item in ViewBag.Threme)
                                            {
                                                <option value="@item.Id">@item.Name</option>
                                            }
                                        </select>
                                    </div>
                                </div>

其中,ViewBag.Threme是后端传过来的一个List集合形式的数据源。

删除节点(我删除的是当前select 的父节点,因为动态数据没法直接移除option选项):

$(“#YearThreme”).empty();

追加select节点:

$("#YearThreme").append(MaxIndex(result));
   function res(index)
        {
            let res = `<select id="ThremeType" name="ThremeType" lay-filter="Thremetype">` + index + `</select>`;
            return res;
        };
        function MaxIndex(result) {
            let mes = '';
            for (let item in result) {
                mes += `<option value =${result[item].id}>${result[item].name}</option>`;
            }
            let constr = res(mes);
            console.log(constr);
            return constr;
        }

这部分功能的全部代码:

html部分:

<div class="layui-inline">
                                    <label class="layui-form-label " style="width:120px">督学主题:</label>
                                    <div class="layui-input-inline" id="YearThreme">
                                        <select id="ThremeType" name="ThremeType" lay-filter="Thremetype">
                                            @foreach (var item in ViewBag.Threme)
                                            {
                                                <option value="@item.Id">@item.Name</option>
                                            }
                                        </select>
                                    </div>
                                </div>

js部分:

      form.on('select(Year)', function (data) {
            Year = data.value;
            //YearThreme
              $.ajax({
               url: '@Url.Action("接口名称")',
               type: 'post',
               data: { Year:Year },
                  success: function (result)
                  {
                     //清空包括选项在内的文本框
                      $("#YearThreme").empty();
                      $("#YearThreme").append(MaxIndex(result));
                      renderForm();
               }
           });

            return false;
        })
     function res(index)
        {
            let res = `<select id="ThremeType" name="ThremeType" lay-filter="Thremetype">` + index + `</select>`;
            return res;
        };
        function MaxIndex(result) {
            let mes = '';
            for (let item in result) {
                mes += `<option value =${result[item].id}>${result[item].name}</option>`;
            }
            let constr = res(mes);
            console.log(constr);
            return constr;
        }

   //重新渲染表单
    function renderForm() {
        layui.use('form', function () {
            var form = layui.form;
            form.render();
        });
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值