【发布时间】:2019-04-27 18:13:25
【问题描述】:
https://baianat.github.io/vee-validate/guide/flags.html#introduction
根据文档,在其中一个字段的值上使用标志时,我应该能够获得布尔值。 例如。
computed: {
isFormDirty() {
return Object.keys(this.fields).some(key => this.fields[key].dirty);
}
},
我正在尝试禁用表单的提交按钮,直到所有字段都有效。我的表格有点长,所以我会尽量简短。输入的所有属性的结构如下:
type="text", @change="updateForm", name="surname", v-validate="'required'", v-model="form.surname", id="surname"。所有输入都由<form> 标签包装。
updateForm 方法如下:
updateForm(event): void {
this.$store.commit('updateForm', this.form)
}
突变“updateForm”如下所示:
updateForm(state, data) {
state.form = data;
},
提交按钮如下所示:
<button type="submit" :disabled="isFormValid">Submit</button>
其中 isFormValid 是一个计算属性,如下所示:
get isFormValid(): boolean {
return Object.keys(this.form).some(key => this.form[key].invalid);
}
表单数据也是一个计算属性:
get form(): FormData {
return this.$store.getters.getForm();
}
问题是当我在isFormValid() 中console.log(Object.keys(this.form).map(key => this.form[key]) 或console.log(this.$validator.fields.items.map(item => item.value) 时,我得到了字段的值。但是,当我在它们后面附加一个无效标志时,它会显示未定义而不是我期望的布尔值。这是为什么呢?
【问题讨论】:
标签: typescript vue.js vee-validate