无法验证 el-select elementUI
Cannot validate el-select elementUI
我正在尝试使用 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();
}
但是没有任何反应。有什么想法吗?
我鼓励您阅读有关(自定义)表单验证的元素 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
}
});
}
我正在尝试使用 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();
}
但是没有任何反应。有什么想法吗?
我鼓励您阅读有关(自定义)表单验证的元素 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
}
});
}