Skip to content

Form 表单

使用

表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。

典型表单

最基础的表单包括各种输入表单项,比如inputselectradiocheckbox等。

在每一个 form 组件中,你需要一个 form-item 字段作为输入项的容器,用于获取值与验证值。

TIP

W3C 标准定义:

当一个表单中只有一个单行文本输入字段时, 浏览器应当将在此字段中按下 Enter (回车键)的行为视为提交表单的请求。 如果希望阻止这一默认行为,可以在 <k-form> 标签上添加 @submit.prevent。

行内表单

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。

通过设置 inline 属性为 true 可以让表单域变为行内的表单域。

对齐方式

根据你们的设计情况,来选择最佳的标签对齐方式。

表单校验

Form 组件允许你验证用户的输入是否符合规范,来帮助你找到和纠正错误。

自定义校验规则

这个例子中展示了如何使用自定义验证规则来完成密码的二次验证。

本例还使用 status-icon 属性为输入框添加了表示校验结果的反馈图标。

TIP

自定义的校验回调函数必须被调用。 校验规则参见 async-validator.

添加/删除表单项

除了一次通过表单组件上的所有验证规则外. 您也可以动态地通过验证规则或删除单个表单字段的规则。

数字类型验证

数字类型的验证需要在 v-model 处加上 .number 的修饰符,这是 Vue 自身提供的用于将绑定值转化为 number 类型的修饰符。

尺寸控制

表单中的所有子组件都继承了该表单的 size 属性。 同样,form-item 也有一个 size 属性。

如果希望某个表单项或某个表单组件的尺寸不同于 Form 上的 size 属性,直接为这个表单项或表单组件设置自己的 size 属性即可。

隐藏label

如果不需要显示 label 标签,可以设置 showLabel 属性为 false, 如果需要隐藏单独的 label 标签,可以在Item上设置showLabel 属性为 false

隐藏冒号

如果不需要显示冒号,可以设置 showColon 属性为 false

嵌套item

嵌套form

API

Form Props

参数名描述类型默认值
model表单数据对象object-
rules表单验证规则object-
inline行内表单模式booleanfalse
label-position表单域标签的位置,当设置为left或right时,则也需要设置label-width属性enumright
label-width标签的长度,作为Form直接子元素的form-item会继承该值string | number''
label-suffix表单域标签的后缀内容string-
hide-required-asterisk隐藏必填项的星号booleanfalse
require-asterisk-position必填项星号的位置enumleft
show-message是否显示校验错误信息booleantrue
inline-message是否以行内形式展示校验信息booleanfalse
status-icon是否在输入框中显示校验结果反馈图标booleanfalse
validate-on-rule-change是否在 rules属性改变后立即触发一次验证booleantrue
sizeform尺寸enumbase
disabled是否禁用该表单内的所有组件。如果设置为true, 它将覆盖内部组件的disabled属性booleanfalse
scroll-to-error当校验失败时,滚动到第一个错误表单项booleanfalse
scroll-into-view-options是否显示右上角当校验有失败结果时,滚动到第一个失败的表单项目boolean | object-
showColon是否显示冒号booleanfalse
showLabel是否显示labelbooleantrue
auto-focus-first 是否自动聚焦第一个 input 或 textarea 元素booleanfalse
auto-focus-to 自动聚焦的目标input元素,支持元素选择器、ref等参数,如果传入的元素不为input或textarea,则聚焦到其后代的第一个input元素string | Element | Ref<ComponentInstance>-

Form Events

事件名描述类型
validate任一表单项被校验后触发Function

Form Methods

方法名描述类型
validate对整个表单的内容进行验证。接收一个回调函数或返回PromiseFunction
validateField验证表单具体的某个字段Function
resetFields重置该表单项,将其值重置为初始值,并移除校验结果Function
scrollToField滚动到指定的字段Function
clearValidate清理某个字段的表单验证信息Function
fields获取所有字段的contextarray

Form Slots

插槽名描述参数
default自定义默认内容-

FormItem Props

参数名描述类型默认值
prop表单数据字段名string | string[]-
label标签文本string-
label-position表单域标签的位置,当设置为left或right时,则也需要设置label-width属性,默认会继承Form的label-positionenum-
label-width标签宽度string | number-
required是否为必填项boolean-
rules表单验证规则object-
error表单域验证错误时的提示信息。设置该值会导致表单验证状态变为 error,并显示该错误信息string-
show-message是否显示校验错误信息booleantrue
inline-message是否在行内显示校验信息boolean | string''
size表单域大小enumbase
validate-status表单域验证状态enum-
forform原生属性string-
showLabel是否显示labelbooleantrue
showColon 是否显示labelbooleanfalse

FormItem Methods

方法名描述类型
validateMessage校验消息object
validateState校验状态object
validate验证表单项Function
resetField对该表单项进行重置,将其值重置为初始值并移除校验结果Function
clearValidate移除该表单项的校验结果object

FormItem Slots

插槽名描述参数
default表单的内容-
label标签位置显示的内容object
error验证错误信息的显示内容object