Vue-AntDesignVue-普通及⾃定义校验实例
这段时间在使⽤进⾏项⽬的前端部分开发,进⾏⼀个记录,分享…
Ant Design Vue
Ant Design Vue是 Ant Design 3.X 的 Vue 实现,开发和服务于企业级后台产品。在GitHub上可以到⼏个Ant Design的Vue组件。不过相⽐较⽽⾔,Ant Design Vue更胜⼀筹。Ant Design Vue共享Ant Design of React设计⼯具体系,实现了所有Ant Design of React的组件,⽀持现代浏览器和 IE9 及以上(需要 polyfills)。可以让熟悉Ant Design的在使⽤Vue时,很容易的上⼿。
下⾯说⼀下关于Ant Design Vue中的表单校验及⾃定义校验。
⾃定义校验
先给⼀张Ant Design Vue得form表单中不同类型的校验场景图,看看是否有你需要的:
官⽅提供了 validateStatus, help ,hasFeedback 等属性,你可以不需要使⽤ ate 和 getFieldDecorator,⾃⼰定义校验的时机和内容。
validateStatus: 校验状态,可选 ‘success', ‘warning', ‘error', ‘validating'。
hasFeedback:⽤于给输⼊框添加反馈图标。
help:设置校验⽂案。
说明⼀点:当你使⽤Ant Design Vue的使⽤,经过 ate 包装的组件将会⾃带 this.form 属性
this.form 提供的关于校验的API如下:
⽅法说明类型
validateFields校验并获取⼀组输⼊域的值与 Error,若 fieldNames 参数为空,则校验全部组件Function([fieldNames: string[]], [options: object], callback: Function(errors, values))
然后看下Form.Item的参数设置(主要看关于校验的):
参数说明类型默认值
extra额外的提⽰信息,和 help 类似,当需要错误信息和提⽰⽂案同时出现时,可以使⽤这个。string/slot
hasFeedback配合 validateStatus 属性使⽤,展⽰校验状态图标,建议只配合 Input 组件使⽤。boolean false
help提⽰信息,如不设置,则会根据校验规则⾃动⽣成string/slot
validateStatus校验状态,如不设置,则会根据校验规则⾃动⽣成,可选:‘success' ‘warning' ‘error' ‘validating'string
最后是校验规则设置:
相关的api及参数设置介绍完乐,下⾯上实例
实例
写⼀个简单的例⼦
form表单代码:
<a-form @submit="handleSubmit" :form="form">
<a-form-item
label="密码"
:labelCol="{span: 5}"
:wrapperCol="{span: 19}"
class="stepFormText"
hasFeedback
>
<a-input
v-decorator="[
'password',
{rules: [{ required: true, message: '请输⼊密码' },{validator: handlePass}]}
]"
name="password"
/>
</a-form-item>
<a-form-item
label="确认密码"
:labelCol="{span: 5}"
:wrapperCol="{span: 19}"
class="stepFormText"
hasFeedback
>
<a-input
v-decorator="[
'confirm_password',
{rules: [{ required: true, message: '请输⼊确认密码' },{validator: handleConfirmPass}]}
]"
name="confirm_password"
/>
</a-form-item>
<a-form-item :wrapperCol="{span: 19, offset: 5}">
<a-button :loading="loading" type="primary" htmlType="submit">提交</a-button>
</a-form-item>
</a-form>
进⾏⼀下说明,以确认密码的校验为例:
<a-input
v-decorator="[
'confirm_password',
{rules: [{ required: true, message: '请输⼊确认密码' },{validator: handleConfirmPass}]}
]"
name="confirm_password"
/>
rules中为⼀个数组,每⼀项就是⼀个校验规则,第⼀项规则容易理解,但是{validator: handleConfirmP
ass}是什么的,我们通过上⾯的校验规则设置(红框处)可以发现,这是当你设置⾃定义校验的时候需要这么写。注意:callback 必须被调⽤。
handleConfirmPass 其实就是⾃定义校验的校验⽅法。
上js代码:
<script>
export default {
data () {
return {
labelCol: {
xs: { span: 24 },
sm: { span: 7 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 13 }
},
password: '',
// form
form: this.$ateForm(this)
}
},
methods: {
handlePass(rule,value,callback){
this.password = value
callback()
},
handleConfirmPass(rule,value, callback){
if (this.password && this.password !== value) {
callback('两次密码输⼊不⼀致!')
}
// Note: 必须总是返回⼀个 callback,否则 validateFieldsAndScroll ⽆法响应
callback()
},
handleSubmit (e) {
e.preventDefault()
this.form.validateFields((err, values) => {
if (!err) {
console.log(values)
}
})
}
}
antdesignvue 配置外部文件
}
</script>
效果图如下:
1.空值提交
2.⾃定义校验规则⽣效
好了,这就是关于Ant Design Vue的普通及⾃定义校验的简单使⽤。
补充知识:关于 Ant Design of Vue 表单动态赋值触发验证问题
关于 Ant Design of Vue 表单动态赋值触发验证
Ant Design of Vue 中给表单动态赋值使⽤ setFieldsValue ⽅法这⼀点之前已经介绍过了,不了解的可以查我之前的博客上⾯有详细的介绍使⽤⽅法但使⽤该⽅法可能会出现⼀个问题例如本⼈使⽤的下拉框触发 change 事件的时候给表单动态赋值
这个时候遇到⼀个问题就是触发的同时也触发了表单验证解决的⽅法是在setFieldsValue ⽅法的外⾯
加上 this.$nextTick(() => {})⽅法如图所⽰
轻松解决问题。
以上这篇Vue-Ant Design Vue-普通及⾃定义校验实例就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。