最近在开发项目的时候遇到了一个问题 就是iview form表单使用的时候表单没有显示错误提示 只是不符合规则的表单loading中 且不能执行其他的操作
代码原始是这样的
data () {
const validateForm = (rule, value, callback) => {
if (!this.form.address.length && rule.field === 'address' ) { // 省略了其他的条件
console.log(11)
}
}
return {
form: {}, // 表单
formRules: { // 表单验证规则
address: [
{
validator: validateForm, // 因为有些其他的操作所以使用了自定义的验证
type: 'array',
required: true,
message: '.',
trigger: 'blur'
}
],
}
}
},
然后经历了一系列的验证 检测 终于发现是因为这个自定义验证规则函数的事情 因为this.form.address
有可能为undefined 所有获取不到length 并且并没有在调试控制台报错 所以导致出现上述的情况所以改了改
data () {
const validateForm = (rule, value, callback) => {
if ((!this.form.address || this.form.address.length) && rule.field === 'address' ) { // 省略了其他的条件
console.log(11)
}
}
return {
form: {}, // 表单
formRules: { // 表单验证规则
address: [
{
validator: validateForm, // 因为有些其他的操作所以使用了自定义的验证
type: 'array',
required: true,
message: '.',
trigger: 'blur'
}
],
}
}
},
记录一下