## 12.11.页面下拉框数据动态
演示页面里面的下拉框之所以都是直接写的静态的,是因为实际项目中也可能后端渲染,也可能ajax渲染,
如果是前后端不分离项目建议直接用后端模板引擎渲染,如果是前后端分离方式需要用ajax渲染。
可以页面一进入就先获取下拉框的数据:
```html
<form class="layui-form" lay-filter="userTbSearchForm">
性别: <select name="sex"></select>
</form>
<!-- 表单弹窗 -->
<script type="text/html" id="userEditDialog">
<form id="userEditForm" lay-filter="userEditForm" class="layui-form model-form">
性别: <select name="sex" lay-verType="tips" lay-verify="required" required></select>
</form>
</script>
<!-- js部分 -->
<script>
layui.use(['layer', 'form', 'table', 'formX'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var admin = layui.admin;
var formX = layui.formX;
var mSexList = []; // 所有性别
/* 获取性别数据字典 */
var loadIndex = layer.load(2);
admin.req('sys/dictdata', {dictCode: 'sex'}, function (res) {
layer.close(loadIndex);
if (0 === res.code) {
mSexList = res.data;
// 渲染搜索栏中的性别select
formX.renderSelect({
elem: '[lay-filter="userTbSearchForm"] select[name="sex"]',
data: mSexList,
name: 'dictDataName',
value: 'dictDataId',
hint: '请选择性别'
});
} else {
layer.msg(res.msg, {icon: 2});
}
});
/* 显示表单弹窗 */
function showEditModel(mData) {
admin.open({
type: 1,
title: (mData ? '修改' : '添加') + '用户',
content: $('#userEditDialog').html(),
success: function (layero, dIndex) {
form.val('userEditForm', mData); // 回显表单数据
// 渲染性别下拉
formX.renderSelect({
elem: '[lay-filter="userEditForm"] select[name="sex"]',
data: mSexList,
name: 'dictDataName',
value: 'dictDataId',
hint: '请选择性别',
initValue: mData ? mData.sex : undefined
});
}
});
}
});
</script>
```
<br/>
- 更新日志
- 开始使用
- 导入项目
- 项目结构
- index.html结构说明
- 添加一个菜单
- common.js说明
- 修改默认配置
- ID命名规范
- index模块
- 加载默认主页
- 打开一个选项卡
- 关闭指定选项卡
- 清除Tab记忆
- 修改Tab标题
- 切换Tab自动刷新
- 侧边栏手风琴折叠
- admin模块(基础)
- 全部方法
- 弹窗相关方法
- 加载层loading
- ajax封装
- 缓存操作putTempData
- 锁屏功能
- ew-event事件绑定
- open弹窗事件
- logout事件
- admin模块(进阶)
- 文字提示
- 地图选择位置
- 裁剪图片
- 动画数字
- 经纬度转换
- 深度克隆对象
- 判断富文本是否为空
- 移除指定style
- 模板引擎
- 滚动到顶部
- 事件监听
- 动态模板
- 公共样式
- 公共类
- 组件样式
- 表单弹窗
- 表格工具栏
- 垂直选项卡
- 徽章扩展
- 下拉树单选
- fixed方式select
- 扩展组件(常用)
- 1.下拉菜单
- 快速使用
- 更多样式
- 对任意元素使用
- 带遮罩层
- 自定义下拉内容
- 控制显示方向
- 在数据表格中使用
- 气泡确认框
- 2.消息通知
- 快速使用
- 全部方法
- 参数列表
- 解决弹窗遮挡
- 3.级联选择器
- 快速使用
- 异步加载
- 自定义分隔符
- 搜索功能
- 省市区选择
- 全部方法
- 全部参数
- 4.标签输入框
- 快速使用
- 全部参数
- 5.分割面板
- 快速使用
- 垂直分割
- 嵌套使用
- 6.环形进度条
- 快速使用
- 全部参数
- 自定义样式
- 7.步骤条
- 快速使用
- 风格选择
- 上一步下一步
- 禁止标题点击
- 扩展组件(进阶)
- 1.表单扩展tableX
- 全部方法
- 合并单元格
- 行绑定鼠标右键
- 后端排序
- 前端分页排序
- 导出数据
- 导出全部、搜索
- 后端导出
- 2.表单扩展formX
- 验证规则
- 扩展方法
- 渲染select封装
- 验证码倒计时
- 获取修改字段
- 3.打印插件
- 打印当前页面
- 设置不打印元素
- 打印自定义内容
- 分页打印
- 拼接html
- 4.鼠标右键
- 快速使用
- 自定义使用
- 动态元素绑定
- 5.数据列表dataGrid
- 快速使用
- 全部参数
- 分页功能
- 加载更多功能
- 实例方法
- 自动渲染
- 6.文件选择器
- 快速使用
- 全部参数
- 第三方插件
- 鼠标滚轮监听
- 二维码模块
- 引导插件
- 剪贴板
- 视频播放器
- 富文本编辑器
- 更多功能
- 主题功能
- 自定义扩展模块
- 增加按钮权限控制
- table统一设置headers
- 弹窗专题
- 第一种 页面层弹窗
- 第二种 iframe弹窗
- 第三种 url方式弹窗
- 第四种 捕获层弹窗
- 四种方式选择指南
- admin.modelForm方法
- 参数传递方法详解
- 刷新url方式弹窗
- 弹窗使用模板引擎
- 弹窗内组件不渲染
- 常见问题
- 后端生成侧边栏
- ajax加载侧边栏
- 多系统模式
- logo文字换行显示
- 侧边栏全部展开
- 侧边栏折叠图标放大
- 弹窗下拉框出现滚动条
- 弹窗宽度不能超出屏幕
- 表单文字出现换行
- select、radio不显示
- 日期laydate不能显示
- 弹窗打开后按enter无限打开
- 表单提交post变成了get
- 修改表格背景和边框颜色
- 修改placeholder颜色
- IE数据表格缓存严重
- 使用parent.layer问题
- 表格打印太长列未换行
- 弹窗layer.js报错404
- 表格请求去掉page和limit
- 侧边栏折叠卡顿
- 图片表格点击查看
- 常用实例
- 表格内switch获取行数据
- 表格回显复选框
- 表格工具列动态显示
- 表单提交数组
- 重载表格重置排序
- laydte动态控制日期限制
- 下拉树一些数据不可选
- 修改弹窗禁用输入框
- 表格中下拉框数据动态
- 实现点击后转一圈
- 页面下拉框数据动态
- 表格动态tool事件处理
- 表格复选框和序号列合并
- 表单提交带文件上传
- 单标签模式加居中文字