使用elementUI表单校验函数validate需要注意的坑及解决
使用elementUI表单校验函数validate需要注意的坑
elementUI表单校验需要使用到自定义校验规则,官网提供的API函数validate入参就一个回调函数,函数参数是返回校验结果(true/false)和校验字段名称prop,详见elementUI官网。
现在要讲的是自定义校验规则函数,即规则对象中的属性validator。
自定义函数的入参有三个,分别是rule,value和callback;其中rule是返回定义的规则对象,value是当前校验控件的状态值,callback是一个校验结果的回调方法。
直接上图:

图中指出存在的坑
为什么写if(!value)return;这段代码呢,那是因为,当控件如果没有输入任何字符而触发事件时的处理,开始以为直接return就可以了,结果引起校验的其他意想不到的异常!!!!
后面查了相关资料才知道,这个自定义校验函数必须返回一个回调函数“callback”!! 即图中下边的 callback();
返回callback的入参为空代表校验通过规则,返回含new Error(‘自定义提示’)入参代表校验不通过规则。
elementUI表单验证validate
elementUI的form组件里对validate给出的解释是:validate接收一个回调函数,或返回 Promise
通俗点说,validate方法的参数可以是一个回调函数,也可以为空(为空时返回Promise对象,没啥用)
1.参数为回调函数时,该回调函数有两个参数,分别是是否校验成功和未通过校验字段,该回调函数会在校验结束后被调用
表单.validate(回调函数(是否校验成功,未通过校验的字段){
if(是否校验成功){// 校验成功
//成功后的操作
}else{ // 校验失败
// 校验失败后的操作
}
})
//非空校验例子
formRef.value.validate(function (valid, msg) {
if (valid) {
console.log(valid, msg);
//valid值为false
//msg值为对象
a: {message: '该字段不能为空', fieldValue: null, field: 'a'}
} else {
console.log(valid, msg);
//valid值为true
//msg值为一个空对象
}
});总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Ant Design moment对象和字符串之间的相互转化教程
这篇文章主要介绍了Ant Design moment对象和字符串之间的相互转化教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10
Vue export import 导入导出的多种方式与区别介绍
这篇文章主要介绍了Vue export import 导入导出的多种方式与区别介绍,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-02-02
Vue 路由组件向app.vue主文件传值的方式(两种常见方式)
在Vue.js中,可以使用路由传参的方式向App.vue主页面传递数据,有多种方法可以实现这一目标,本文结合实例代码给大家介绍的非常详细,需要的朋友参考下吧2023-11-11
解决element ui e-image和e-table一起使用显示的问题
本文详细解析了在使用Element Plus组件库时,el-table与el-image嵌套导致样式错乱的问题,并提供了有效的解决代码示例,帮助开发者优化页面布局2026-05-05
关于Vue中echarts响应式页面变化resize()的用法介绍
Vue项目中开发数据大屏,使用echarts图表根据不同尺寸的屏幕进行适配,resize()可以调用echarts中内置的resize函数进行自适应缩放,本文将给大家详细介绍resize()的用法,需要的朋友可以参考下2023-06-06


最新评论