Vue中this.$refs[formName].validate((valid) =>{}不执行的错误
今天遇到了一个this.$refs[formName].validate((valid) =>{}不执行的错误
addOnSubmit () {
this.$refs.addMenu.validate((valid) => {
if (valid) {
this.addLoading = true
this.addMenu.keyword = this.keyWordList.join('-')
this.$http({
url: this.$http.adornUrl('/specialManager/insert'),
method: 'POST',
data: this.addMenu
}).then(res => {
const data = res.data
if (data.code === 200) {
this.$emit('addEditList')
this.$message.success('新增专题成功')
this.addLoading = false
this.addDrawer = false
}
})
}
})
},
这一行不执行,后来查看了一下错误
因为表单校验的函数出错,导致这里不能执行
// 校验标题
validateTitle (rule, value, callback) {
if (!value) {
callback(new Error('请输入专题'))
} else {
if (this.parentList.specialName !== undefined) {
this.parentList.forEach(ele => {
if (ele.specialName === value) {
callback(new Error('专题不能和父级重名'))
} else {
callback()
}
})
callback()
} else {
callback()
}
}
},
因为我的specialName初始化时,没有定义所以才导致没有执行到callback()回调函数,最终导致this.$refs[formName].validate((valid) =>{}不执行的错误