Vue中this.$refs[formName].validate((valid) =>{}不執行的錯誤
阿新 • • 發佈:2022-05-16
今天遇到了一個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) =>{}不執行的錯誤