layui 联动下拉框
时间: 2023-10-16 22:07:02 浏览: 117
基于Layui的多选下拉选择框解决方案设计源码
在 layui 中,可以通过使用 form 模块的 select 组件来实现联动下拉框。具体步骤如下:
1. 在 HTML 中定义两个 select 组件,分别为父级和子级下拉框:
```
<div class="layui-form-item">
<label class="layui-form-label">省份</label>
<div class="layui-input-block">
<select name="province" lay-filter="province">
<option value="">请选择省份</option>
<option value="北京市">北京市</option>
<option value="上海市">上海市</option>
<option value="广东省">广东省</option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">城市</label>
<div class="layui-input-block">
<select name="city" lay-filter="city">
<option value="">请选择城市</option>
</select>
</div>
</div>
```
2. 在 JavaScript 中使用 form.on 监听 select 的 change 事件,在父级下拉框选中值发生变化时,发送请求获取对应的子级数据,并将其渲染到子级下拉框中:
```
layui.use(['form', 'jquery'], function() {
var form = layui.form;
var $ = layui.jquery;
// 监听省份下拉框的变化
form.on('select(province)', function(data) {
// 发送请求获取对应的城市数据
$.ajax({
url: '/getCity',
type: 'POST',
data: {province: data.value},
success: function(data) {
// 渲染城市数据到城市下拉框中
var options = '<option value="">请选择城市</option>';
for (var i = 0; i < data.length; i++) {
options += '<option value="' + data[i] + '">' + data[i] + '</option>';
}
$('select[name="city"]').html(options);
form.render('select'); // 重新渲染select组件,让动态生成的option生效
}
});
});
});
```
3. 在后端实现获取子级数据的接口,这里使用了 Node.js 和 Express 框架:
```
var express = require('express');
var app = express();
app.use(express.static('public'));
app.post('/getCity', function(req, res) {
var province = req.body.province;
var cities = [];
// 根据省份获取对应的城市数据
if (province === '北京市') {
cities = ['东城区', '西城区', '朝阳区', '海淀区'];
} else if (province === '上海市') {
cities = ['黄浦区', '徐汇区', '长宁区', '静安区'];
} else if (province === '广东省') {
cities = ['广州市', '深圳市', '珠海市', '汕头市'];
}
res.send(cities);
});
app.listen(3000, function() {
console.log('Server is running at http://localhost:3000');
});
```
注意:这里的省份和城市数据是手动定义的,实际应用中可能需要从数据库或其他数据源中获取。
阅读全文