## 1.7.ID命名规范
ID命名规范是SPA单页面版强烈建议的,非SPA单页版也建议ID参考此规范来命名。
**总体命名规则xxxXxxXxx**
- 第一个xxx   模块名,比如用户模块`user`
- 第二个Xxx   功能描述,比如添加`Add`
- 第三个Xxx   元素类型,比如按钮`Btn`
例如页面是user.html,它的各个元素命名如下:
**按钮的命名**
```html
<!-- 命名规则:xxxXxxBtn -->
<button id="userAddBtn" class="layui-btn">添加</button>
<button id="userEditBtn" class="layui-btn">修改</button>
<button id="userDelBtn" class="layui-btn">删除</button>
```
**表格的命名**
```html
<!-- 命名规则:xxxTable -->
<table id="userTable" lay-filter=""userTable"></table>
<!-- 表格上方搜索表单,命名规则:xxxTbSearchForm,id和lay-filter是非必须的 -->
<form class="layui-form" id="userTbSearchForm" lay-filter="userTbSearchForm">
<!-- 输入框部分省略... -->
<!-- 搜索提交按钮命名规则:xxxTbSearch -->
<button class="layui-btn" lay-filter="userTbSearch" lay-submit>搜索</button>
</form>
<!-- 表格操作列,命名规则:xxxTbBar -->
<script type="text/html" id="userTbBar">
<a class="layui-btn" lay-event="edit">修改</a>
<a class="layui-btn" lay-event="del">删除</a>
</script>
<!-- 表格其他复杂列,例如switch状态开关等,命名规则:xxxTbXxx -->
<script type="text/html" id="userTbState">
<input type="checkbox" lay-filter="userTbStateCk" value="{{d.userId}}" lay-skin="switch"
lay-text="正常|锁定" {{d.state==0?'checked':''}}/>
</script>
```
**一个页面有多个表格的命名**
```html
<!-- 命名规则:xxxXxxTable -->
<!-- 例如这是一个用户订单记录表 -->
<table id="userOrderTable" lay-filter=""userOrderTable"></table>
<!-- 表格操作列,命名规则:xxxXxxTbBar -->
<script type="text/html" id="userOrderTbBar">
<a class="layui-btn" lay-event="edit">修改</a>
<a class="layui-btn" lay-event="del">删除</a>
</script>
```
**表单弹窗的命名**
```html
<!-- 页面层弹窗命名规则:xxxEditDialog,非页面层可以忽略script -->
<script type="text/html" id="userEditDialog">
<!-- 表单命名规则:xxxEditForm -->
<form id="userEditForm" lay-filter="userEditForm" class="layui-form model-form">
<!-- 输入框部分省略... -->
<!-- 提交按钮命名规则:xxxEditSubmit -->
<button class="layui-btn" lay-filter="userEditSubmit" lay-submit>保存</button>
</form>
</script>
```
**页面其他弹窗的命名**
```html
<!-- 例如这是一个查看详情弹窗 -->
<!-- 页面层弹窗命名规则:xxxXxxDialog,非页面层可以忽略script -->
<script type="text/html" id="userInfoDialog">
<!-- 表单命名规则:xxxXxxForm -->
<form id="userInfoForm" lay-filter="userInfoForm" class="layui-form model-form">
<!-- 输入框部分省略... -->
<!-- 提交按钮命名规则:xxxXxxSubmit -->
<button class="layui-btn" lay-filter="userInfoSubmit" lay-submit>保存</button>
</form>
</script>
```
表单里面的input建议少用id,只用name,取input的值通过监听表单提交来取,用input通过`$('#xxxForm [name="xxx"]')`来写。
**其他元素ID命名**
```html
<!-- 命名规则:xxxXxxXxx,第一个xxx是模块名,第二个Xxx是功能描述,第三个Xxx是元素类型 -->
<!-- 例如角色选择的下拉框 -->
<select id="userRoleSel"></select>
<!-- 例如备注的输入框 -->
<input id="userCommentsEdt" />
```
**元素类型简写**
元素 | 简写 | 描述
--- | --- | ---
按钮类 | `Btn` | `<button>`、`.layui-btn`等
输入类的 | `Edt` | EditText的简写,`input`、`textarea`等
选择类的 | `Sel` | 下拉框、多选下拉框等
表格 | `Table` | `id="userTable"`、`id="userOrderTable"`等
表格附加组件 | `Tb` | `id="userTbBar"`、`id="userOrderTbBar"`等
弹窗 | `Dialog` | `id="userEditDialog`、`id="userInfoDialog"`等
表单 | `Form` | `id="userEditForm`、`id="userInfoForm"`等
表单提交按钮 | `Submit` | `id="userEditSubmit"`、`id="userInfoSubmit"`等
**页面的命名**
```html
<!-- 命名格式:xxxApp -->
<body id="userApp"></body>
```
> 以上规则只是规范,非必须要求
- 更新日志
- 开始使用
- 导入项目
- 项目结构
- 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事件处理
- 表格复选框和序号列合并
- 表单提交带文件上传
- 单标签模式加居中文字