『前端日志』关于element-ui的表单校验validate返回的参数始终为true的问题
最近在用vue+element-ui做简单的项目,遇到了一个百度不到原因的问题(可能是我不会描述问题,也可能是没人犯这么蠢的问题):在用rules做表单验证的时候,validate函数的返回值valid一直是true,哪怕是错误的校验信息也是。放个官方的代码看一下:<el-form :model="numberValidateForm" ref="numberValidateForm" l.
·
最近在用vue+element-ui做简单的项目,遇到了一个百度不到原因的问题(可能是我不会描述问题,也可能是没人犯这么蠢的问题):在用rules做表单验证的时候,validate函数的返回值valid一直是true,哪怕是错误的校验信息也是。放个官方的代码看一下:
<el-form :model="numberValidateForm" ref="numberValidateForm" label-width="100px" class="demo-ruleForm">
<el-form-item
label="年龄"
prop="age"
:rules="[
{ required: true, message: '年龄不能为空'},
{ type: 'number', message: '年龄必须为数字值'}
]"
>
<el-input type="age" v-model.number="numberValidateForm.age" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('numberValidateForm')">提交</el-button>
<el-button @click="resetForm('numberValidateForm')">重置</el-button>
</el-form-item>
</el-form>
<script>
export default {
data() {
return {
numberValidateForm: {
age: ''
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => { //就是这里的valid一直是true
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
}
}
}
</script>
最后发现是因为我自己的代码里写了多个el-form,虽然rules能够对每个el-form里的表单进行校验,但返回回来的valid只代表最后一个el-form的状态,最后我把所有代码放到一个el-form里就解决了…
更多推荐
已为社区贡献2条内容
所有评论(0)