我正在尝试用el-select这样的方式创建自定义验证:
在我的模板中:
<el-form ref="form" >
<el-form-item prop="fieldProp" >
<el-select class="dialog-select" v-model="informationForm.age" @change="validateDropdown"
placeholder="age" style="width: 100%" >
<el-option label="11" value="1"></el-option>
<el-option label="22" value="2"></el-option>
</el-select>
</el-form-item>
</el-form>在数据中:
data() {
let checkCurrency = (rule, value, callback) => {
if (!value) {
return callback(new Error('Please input the age'));
}
};
return {
fieldProp: [
{ validator: checkCurrency, trigger: 'change' }
]
}
} 在我的方法中:
validateDropdown() {
this.$refs.form.validateField('fieldProp')
}并调用验证方法:在提交中
submit() {
this.validateDropdown();
}但是什么也没发生。有什么想法吗?
发布于 2020-04-21 17:14:35
我建议您阅读关于(自定义)表单验证的元素ui文档:https://element.eleme.io/#/en-US/component/form#custom-validation-rules
在您的例子中,您应该向表单添加一个model和rules属性,然后使用适当的validate方法。
示例代码:
<el-form ref="form" :model="informationForm" :rules="rules">
<el-form-item prop="age" >
<el-select class="dialog-select" v-model="informationForm.age" placeholder="age" style="width: 100%">
<el-option label="11" value="1"></el-option>
<el-option label="22" value="2"></el-option>
</el-select>
</el-form-item>
</el-form> data() {
let checkCurrency = (rule, value, callback) => {
if (!value) {
return callback(new Error('Please input the age'));
}
};
return {
rules: {
fieldProp: [
{ required: true, validator: checkCurrency, trigger: 'change' }
]
}
}
}不需要validateDropdown,因为您的字段已经在每个change上进行了验证,这要归功于这个:trigger: 'change'。
submit() {
this.$refs.form.validate((valid) => {
if (valid) {
// todo
} else {
// todo
}
});
}https://stackoverflow.com/questions/61339521
复制相似问题