ant-design-vue/antdv-demo/docs/form-model/index.zh-CN.md

5.6 KiB
Raw Blame History

API

Form

参数 说明 类型 默认值 版本
model 表单数据对象 object
rules 表单验证规则 object
hideRequiredMark 隐藏所有表单项的必选标记 Boolean false
labelAlign label 标签的文本对齐方式 'left' | 'right' 'right'
layout 表单布局 'horizontal'|'vertical'|'inline' 'horizontal'
labelCol label 标签布局,同 <Col> 组件,设置 span offset 值,如 {span: 3, offset: 12}sm: {span: 3, offset: 12} object
wrapperCol 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol object
colon 配置 Form.Item 的 colon 的默认值 (只有在属性 layout 为 horizontal 时有效) boolean true
validateOnRuleChange 是否在 rules 属性改变后立即触发一次验证 boolean true

事件

事件名称 说明 回调参数
submit 数据验证成功后回调事件 Function(e:Event)
validate 任一表单项被校验后触发 被校验的表单项 prop 值,校验是否通过,错误消息(如果存在)

方法

方法名 说明 参数
validate 对整个表单进行校验的方法,参数为一个回调函数。该回调函数会在校验结束后被调用,并传入两个参数:是否校验成功和未通过校验的字段。若不传入回调函数,则会返回一个 promise Function(callback: Function(boolean, object))
validateField 对部分表单字段进行校验的方法 Function(props: array | string, callback: Function(errorMessage: string))
resetFields 对整个表单进行重置,将所有字段值重置为初始值并移除校验结果
clearValidate 移除表单项的校验结果。传入待移除的表单项的 prop 属性或者 prop 组成的数组,如不传则移除整个表单的校验结果 Function(props: array | string)

Form.Item

参数 说明 类型 默认值 版本
prop 表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的 string
rules 表单验证规则 object | array
autoLink 是否自动关联表单域,对于大部分情况都可以使用自动关联,如果不满足自动关联的条件,可以手动关联,参见下方注意事项 boolean true
colon 配合 label 属性使用,表示是否显示 label 后面的冒号 boolean true
extra 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 string|slot
hasFeedback 配合 validateStatus 属性使用,展示校验状态图标,建议只配合 Input 组件使用 boolean false
help 提示信息,如不设置,则会根据校验规则自动生成 string|slot
htmlFor 设置子元素 label htmlFor 属性 string
label label 标签的文本 string|slot
labelCol label 标签布局,同 <Col> 组件,设置 span offset 值,如 {span: 3, offset: 12}sm: {span: 3, offset: 12} object
labelAlign 标签文本对齐方式 'left' | 'right' 'right'
required 是否必填,如不设置,则会根据校验规则自动生成 boolean false
validateStatus 校验状态,如不设置,则会根据校验规则自动生成,可选:'success' 'warning' 'error' 'validating' string
wrapperCol 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol object

注意:

Form.Item 会对唯一子元素进行劫持,并监听 blurchange 事件,来达到自动校验的目的,所以请确保表单域没有其它元素包裹。如果有多个子元素,将只会监听第一个子元素的变化。

如果要监听的表单域不满足自动监听的条件,可以通过如下方式关联表单域:

<a-form-model-item prop="form.name" ref="name" :autoLink="false">
  <a-input v-model="other" />
  <span>hahha</span>
  <div>
    <a-input
      v-model="form.name"
      @blur="() => {$refs.name.onFieldBlur()}"
      @change="() => {$refs.name.onFieldChange()}"
    />
  </div>
</a-form-model-item>

校验规则

参数 说明 类型 默认值
trigger 校验触发的时机 'blur' | 'change' | ['change', 'blur'] -
enum 枚举类型 string -
len 字段长度 number -
max 最大长度 number -
message 校验文案 string -
min 最小长度 number -
pattern 正则表达式校验 RegExp -
required 是否必选 boolean false
transform 校验前转换字段值 function(value) => transformedValue:any -
type 内建校验类型,可选项 string 'string'
validator 自定义校验(注意,callback 必须被调用 function(rule, value, callback) -
whitespace 必选时,空格是否会被视为错误 boolean false

更多高级用法可研究 async-validator