应用场景:选项联动。
添加动态节点:
<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();
});
}