使用 Vuelidate,由于 'required' 验证器现在认为布尔值 'false' 是一个有效值,因此您必须使用 'sameAs'sameAs: sameAs( () => true )
来实现复选框所需的验证。如何使用 vuelidate 对复选框实施“requiredUnless”验证,其中仅在属性不是特定值时才需要检查复选框?
问问题
939 次
2 回答
2
false 被验证为有效,因此您需要将其更改为空字符串,我将在手表中执行此操作:
data() {
return {
email: '',
age: null,
password: '',
confirmPassword: '',
country: 'Malta',
hobbyInputs: [],
terms: '',
countries,
}
},
validations: {
terms: {
required: requiredUnless(vm => {
return vm.country === 'Malta'
}),
}
},
watch: {
terms() {
if (!this.terms) {
this.terms = '';
}
}
},
于 2020-10-08T19:17:13.627 回答
0
我找不到使用 vuelidate 进行验证的方法。所以我创建了一个方法,它通过执行一个方法来切换一个 css 类并将 $v 对象传递给它,并且只在值不是选定值时运行验证。
<div class="input inline" :class="{invalid: checkCountry($v)}">
验证者
Validations: {
terms: {
sameAs: sameAs(vm => {
if (!(vm.country === 'germany')) {
return true;
} else {
return false;
}
})
方法
methods: {
checkCountry($v) {
if (this.country === 'germany') {
return false;
} else {
return $v.terms.$invalid;
}
}
于 2020-01-29T16:15:13.110 回答