https://baianat.github.io/vee-validate/guide/flags.html#introduction
According to the documentation, I should be able to get a boolean when using a flag on the value of one of the fields. Eg.
computed: {
isFormDirty() {
return Object.keys(this.fields).some(key => this.fields[key].dirty);
}
},
I am trying to disable the submit button of my form until all fields are valid. My form is a bit long so I will keep it short. All the attributes of the inputs are structured like the following:
type="text", @change="updateForm", name="surname", v-validate="'required'", v-model="form.surname", id="surname". All the inputs are wrapped by a <form> tag.
The updateForm method looks like:
updateForm(event): void {
this.$store.commit('updateForm', this.form)
}
where the mutation 'updateForm' looks like:
updateForm(state, data) {
state.form = data;
},
The submit button looks like:
<button type="submit" :disabled="isFormValid">Submit</button>
where isFormValid is a computed property that looks like:
get isFormValid(): boolean {
return Object.keys(this.form).some(key => this.form[key].invalid);
}
The form data is also a computed property:
get form(): FormData {
return this.$store.getters.getForm();
}
The problem is when I console.log(Object.keys(this.form).map(key => this.form[key]) or console.log(this.$validator.fields.items.map(item => item.value) inside isFormValid(), I am getting the values of the fields. However, when I attach an invalid flag after them, it shows undefined instead of the boolean I am expecting. Why is this?