element form表单验证无效
微wx笑
2021-02-23【前端开发】
4
0关键字:
element form 表单验证
element form表单验证无效,添加了验证规则,但是提交时页面不提示,而且还能提交成功。
element form表单验证无效,添加了验证规则,但是提交时页面不提示,而且还能提交成功。
1、el-form
:model务必绑定到,每个el-form-item绑定的v-model,且需绑定 :rules
<el-form ref="postForm" :model="postForm" :rules="rules" class="form-container">
ref也需要设置,在调用验证时需要使用
2、el-form-item
el-form-item上的prop必须与v-model同名,例如下面的 prop="orgName" 对应 v-model="postForm.orgName",不设置 prop 或设置错误的话,就不会显示提示信息
<el-form-item label-width="180px" label="组织名称:" class="postInfo-container-item" :required="true" prop="orgName"> <el-input v-model="postForm.orgName" placeholder="必填" /> </el-form-item>
3、data “postForm”
应该存在"postForm",即上述 el-form model中绑定的对象,本例为:postForm
export default {
data() {
return {
postForm: Object.assign({}, defaultForm),
rules: {
orgName: [{ required: true, message: '请输入组织名称', trigger: 'blur' }],
linkman: [{ required: true, message: '请输入联系人姓名', trigger: 'blur' }],
linkmanMobile: [{ required: true, message: '请输入联系人电话', trigger: 'blur' }],
orgCertificationUrl: [{ required: true, message: '请上传组织资质证书', trigger: 'blur', type: 'url' }]
}
}
}
}4、data “rules”
应该存在rules,即在el-form中:rules绑定的对象,参见上面代码中的 rules 定义
5、验证不通过还能提交的问题
validate 方法中的 return false 只是退出 validate 方法的执行。
async submitForm() {
let notifyTitle = '保存'
let validateFlag = true
this.$refs['postForm'].validate(valid => {
if (valid) {
this.loading = true
validateFlag = true
} else {
validateFlag = false
console.log('error submit!!')
return false
}
})
if (!validateFlag) {
return false
}
// 以下为提交表单相关代码
if (this.isEdit) {
// this.postForm.status = 1
const { data } = await updateSociety(this.postForm)
console.log('data====', data)
this.postForm = data
this.$notify({
title: notifyTitle + '成功',
message: notifyTitle + '组织信息成功',
type: 'success',
duration: 2000
})
} else {
// this.postForm.status = 1
notifyTitle = '添加'
const { data } = await addSociety(this.postForm)
console.log('data', data)
// this.postForm = data
this.$notify({
title: notifyTitle + '成功',
message: notifyTitle + '组织成功',
type: 'success',
duration: 2000
})
}
// this.postForm.status = 'published'
this.loading = false
}要退出 submitForm 方法的执行,我添加了一个变量 validateFlag,需要在外层根据 validateFlag 变量再执行一次 return false,这样后面的代码才不会被执行。
本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/front/2021-02-23/620.html



