98 lines
2.7 KiB
Markdown
98 lines
2.7 KiB
Markdown
|
# 下拉选择
|
|||
|
|
|||
|
## 基于JQuery的下拉选择
|
|||
|
|
|||
|
### 直接选择
|
|||
|
|
|||
|
html
|
|||
|
|
|||
|
```html
|
|||
|
<div class="layui-form-item">
|
|||
|
<label class="layui-form-label"></label>
|
|||
|
<div class="layui-input-block">
|
|||
|
<select id="selector" name="selector" lay-filter="selectorSelect"></select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
```
|
|||
|
|
|||
|
js
|
|||
|
|
|||
|
```javascript
|
|||
|
// 初始化
|
|||
|
function initSelect(callback) {
|
|||
|
top.restAjax.get(top.restAjax.path('url', ['']), {}, null, function(code, data) {
|
|||
|
$('#selector').append('<option value="">请选择</option>');
|
|||
|
$.each(data, function (index, item) {
|
|||
|
$('#selector').append('<option value="’+ item.dataName +‘" '+ (index === 0 ? 'selected' : '') +'>'+ item.dataName +'</option>');
|
|||
|
});
|
|||
|
// 渲染表单下拉框
|
|||
|
form.render(null, 'dataForm');
|
|||
|
callback ? callback() : null;
|
|||
|
}, function(code, data) {
|
|||
|
top.dialog.msg(data.msg);
|
|||
|
})
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
### 选择并获取其他属性
|
|||
|
|
|||
|
以部门选择为例,选择部门既要获取部门名称,又要获取部门ID
|
|||
|
|
|||
|
html
|
|||
|
|
|||
|
```html
|
|||
|
<div class="layui-form-item">
|
|||
|
<label class="layui-form-label">接种单位名称 *</label>
|
|||
|
<div class="layui-input-block">
|
|||
|
<input type="hidden" id="departmentId" name="departmentId" class="layui-input" value="" maxlength="36">
|
|||
|
<select id="departmentName" name="departmentName" lay-filter="departmentNameFilter" lay-verify="required"></select>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
```
|
|||
|
|
|||
|
js
|
|||
|
|
|||
|
```javascript
|
|||
|
// 初始化
|
|||
|
function initDepartmentSelect(callback) {
|
|||
|
top.restAjax.get(top.restAjax.path('api/department/list/0', []), {}, null, function(code, data) {
|
|||
|
$('#departmentName').append('<option value="">请选择</option>');
|
|||
|
$.each(data, function (index, item) {
|
|||
|
$('#departmentName').append('<option value="'+ item.departmentName +'" data-department-id="'+ item.departmentId +'">'+ item.departmentName +'</option>');
|
|||
|
});
|
|||
|
// 渲染表单下拉框
|
|||
|
form.render(null, 'dataForm');
|
|||
|
callback ? callback() : null;
|
|||
|
}, function(code, data) {
|
|||
|
top.dialog.msg(data.msg);
|
|||
|
})
|
|||
|
|
|||
|
// 添加监听事件
|
|||
|
form.on('select(departmentNameFilter)', function(data) {
|
|||
|
var value = data.value;
|
|||
|
// 遍历 option 获取 option 上的属性
|
|||
|
for(var i = 0, item; item = $(data.elem).children()[i++];) {
|
|||
|
if(item.value == value) {
|
|||
|
$('#departmentId').val(item.dataset.departmentId);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
### 列表上的选择
|
|||
|
|
|||
|
```html
|
|||
|
<div class="layui-inline layui-form search-item">
|
|||
|
<select id="type" name="type" lay-filter="typeFilter">
|
|||
|
<option value="">选择类型</option>
|
|||
|
<option value="type1">类型1</option>
|
|||
|
<option value="type2">类型2</option>
|
|||
|
</select>
|
|||
|
</div>
|
|||
|
```
|