【发布时间】:2020-02-12 22:51:30
【问题描述】:
我正在使用 Vuetify,并且有一个表单,我使用 VeeValidate 进行表单验证... 当我使用这个时:
this.$validator.validateAll().then((result) => {
console.log("result form", result);
//result ? this.onSubmit() : scrollTo(0, 250);
});
它总是返回 true,即使我的输入字段上的验证无效... 输入看起来像:
<v-textarea
filled
name="string"
:label="placeholderText"
auto-grow
single-line
:placeholder="placeholderText"
v-model="answer"
:required="isRequired"
v-validate:computedProp="checkRequired"
:error-messages="errors.collect('string')"
data-vv-name="string"
:hint="hintText"
@blur="updateAnswer"
></v-textarea>
输入组件的代码:
export default {
$_veeValidate: {
validator: 'new'
},
name: 'String',
props: {
placeholderText: {
default: 'Add a value'
},
hintText: {
default: 'Add a value'
},
isRequired: {
default: true
}
},
data: () => ({
answer: ''
}),
computed: {
checkRequired() {
return this.isRequired ? 'required' : ''
}
},
methods: {
updateAnswer() {
this.$validator.validateAll();
this.$emit('updateAnswer', this.answer);
}
}
}
我在另一个组件中调用 this.$validator.validateAll()...输入组件是一个独立组件...我将它全部包装在一个表单标签中,并在提交时运行验证功能
【问题讨论】:
-
checkRequired不总是正确的吗? 'required' 和空字符串一样是真的吗?为什么不return this.isRequird ? true : false?
标签: vue.js vuejs2 vuetify.js