Skip to content

Form 表单 ​

使用
import { KForm } from "@ksware/ksw-ux";

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

典型表单 ​

最基础的表单包括各种输入表单项,比如input、select、radio、checkbox等。

在每一个 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 ​

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 1.2.0是否自动聚焦第一个 input 或 textarea 元素booleanfalse
auto-focus-to 1.2.0自动聚焦的目标input元素,支持元素选择器、ref等参数,如果传入的元素不为input或textarea,则聚焦到其后代的第一个input元素string | Element | Ref<ComponentInstance>-

Form Events ​

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

Form Slots ​

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

Form Methods ​

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

FormItem API ​

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 1.1.20是否显示冒号booleanfalse

FormItem Slots ​

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

FormItem Methods ​

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