--- title: 表单组件 form toc: true --- # 表单组件 🔥 > 表单组件`form`是包含输入框、选择框、复选框、开关、单选框等表单项组件的集合,主要用于对表单域进行各类动态化渲染和相关的交互操作。`form`是 Layui 最常用的组件之一。

示例

综合演示

  

方框风格

  

登录模板 2.8+

  

注册模板 2.8+

  
更多其他表单模板均可自由布局实现,为了避免影响文档其他重要版面的阅读,我们就不做过多演示了。

表单布局

### 🌕 普通布局 在上文的「[综合演示](#examples)」示例中,我们用的是 form 组件自身的普通布局。其要点为: - 通过 `class="layui-form"` 定义一个表单域,通常设置在`
`标签上, 或普通`
` 标签亦可。 - 通过 `class="layui-form-item"` 定义一个块级元素的表单项容器 - 通过 `class="layui-form-label"` 定义标签 - 通过 `class="layui-form-block"` 定义表单项父容器为块级元素 - 通过 `class="layui-form-inline"` 或 `class="layui-inline"` 定义表单项父容器为行内块元素 即必须按照规定的层级定义相应的 `class`。 ### 🌕 栅格布局 form 还可以借助*栅格*实现更灵活的响应式布局。
  

API

| API | 描述 | | --- | --- | | var form = layui.form | 获得 `form` 模块。 | | [form.render(type, filter)](#render) | 表单域组件渲染,核心方法。[#用法](#render) | | [form.verify(obj)](#verify) | 自定义表单验证的规则。[#用法](#verify) | | [form.validate(elem)](#validate) 2.7+ | 主动触发执行验证。[#用法](#validate) | | [form.val(filter, obj)](#val) | 表单赋值或取值。 [#用法](#val) | | [form.submit(filter, callback)](#submit) 2.7+ | 用于主动执行指定表单的提交。[#用法](#submit) | | [form.on(\'event(filter)\', callback)](#on) | 事件。[#用法](#on) | | form.config | 获取 form 组件全局配置项。 | | form.set(options) | 设置 form 组件全局配置项。 |

属性

在表单域中,有时还需要定义一些特定属性来配合组件的使用,它们一般以 `lay-*` 为命名格式,如: ``` ``` 以下为 `form` 组件的特定属性列表: | 属性 | 值 | 描述 | | --- | --- | --- | | title | 自定义 | 设置表单元素标题,一般用于 `checkbox,radio` 元素 | | lay-filter | 自定义 | 设置表单元素的过滤器,以便用于执行相关方法时的参数匹配 | | lay-verify | `required`必填项
`phone`手机号
`email`邮箱
`url`网址
`number`数字
`date`日期
`identity`身份证
`自定义规则值` | 设置表单项的验证规则,支持单条或多条规则(多条用`\|`分隔),如:
`lay-verify="required"`
`lay-verify="required\|email"`
`lay-verify="其他自定义规则值"`
自定义规则的用法:[#详见](#verify) | | lay-vertype | `tips`吸附层
`alert` 对话框
`msg` 默认 | 设置验证异常时的提示层模式 | | lay-reqtext | 自定义 | 设置*必填项*(`lay-verify="required"`)的默认提示文本 | | lay-affix | [#详见](input.html#affix) | 输入框动态点缀,``元素 **私有属性** | | lay-skin | [#详见](checkbox.html#default) | 设置 UI 风格。 `` 元素 **私有属性** | | lay-search | 默认不区分大小写;
设置`cs`区分大小写 | 给 `select` 组件开启搜索功能。`
``` ### **忽略渲染** 若表单域中的部分表单不需要 Layui 来渲染,那么可通过 `lay-ignore` 属性让其保留系统原始 UI 风格。
  

验证

Layui 对表单做了相对巧妙的支持,只需在表单元素上设置 `lay-verify=""` 属性值即可指定验证规则,如: ```
``` 其中,`lay-verify` 属性的内置规则值可参考上文的:[#属性介绍](#attr)。 当表单提交时,会自动触发验证。

自定义验证规则

`form.verify(obj);` - 参数 `obj` 是一个对象,用于定义验证规则的集合。 当内置的验证规则无法满足业务需求时,我们可以通过该方法自定义验证规则。如:
  
更多「自定义验证规则」示例参考: > - 将 form 提示语显示在表单项旁边,并在提交时批量触发验证 > - 重置 form 内置验证规则,让其:当非空值才进行验证;加了 required 时才验证非空

主动触发验证 2.7+

`form.validate(elem);` - 参数 `elem` 为元素选择器或 jQuery 对象; 若验证通过,该方法将返回 true,否则返回 false
  

赋值/取值

`form.val(filter, obj);` - 参数 `filter` 为表单域容器(`class="layui-form"`)的 `lay-filter` 属性值 - 参数 `obj` 可选。若参数存在,则对表单域进行赋值;若参数不存在,则为对表单域进行取值。
  

提交

表单的提交可以通过事件触发或方法触发 ### **提交事件** 在表单域中,对指定按钮设置 `lay-submit` 属性,即意味着点击该按钮时,将触发提交事件。如:
  
### **提交方法** 2.7+ `form.submit(filter, callback);` - 参数 `filter` 为表单域容器的 `lay-filter` 属性值 - 参数 `callback` 为执行提交事件后的回调函数 使用该方法可以实现在任意位置对指定表单的主动提交,相比上述的提交事件更加灵活。
  

事件

`form.on('event(filter)', callback);` - 参数 `event(filter)` 是一个特定结构。`event` 为事件名,支持:`select,checkbox,switch,radio,submit`;`filter` 为元素属性 `lay-filter` 对应的值,若不填,则指向所有同类组件的事件。 - 参数 `callback` 为事件执行时的回调函数,并返回一个包含各种值的 `object` 类型的参数。 如下以 `select` 事件为例: ``` // 指向所有 select 组件的选择事件 form.on('select', function(data){ console.log(data); }); // 指向元素为 `` 的选择事件 form.on('select(test)', function(data){ console.log(data); }); ```