I'm a beginner in coding, want to enable and disable a form once the form got filled. So in my thought I was checking if the validation array is empty it should enable the button else disable this is what I tried. In computed I was checking array is null but disabling the button not able to enable it. Please let me know the problem. Thanks in advance.
<template>
<div>
<form
@submit.prevent="submitRegistration(); accesTimercount()"
v-show="!bakeryRegSuccessMsg"
>
<h3>Sign Up Your Bakery with Us</h3>
<div class="row gtr-uniform">
<div class="col-6 col-12-xsmall">
<input
type="text"
name="bakeryName"
value
placeholder="Bakery Name"
v-model="bakeryname"
autocomplete="off"
required
/>
<span class="errNotific" v-if="validation.bakeryname">{{validation.bakeryname}}</span>
</div>
<div class="col-6 col-12-xsmall">
<input
type="text"
name="ownerName"
value placeholder="Owner's Name"
v-model="ownername"
autocomplete="off"
required
/>
<span class="errNotific" v-if="validation.ownername">{{validation.ownername}}</span>
</div>
<div class="col-6 col-12-xsmall">
<textarea
class="boxBorder"
name="description"
placeholder="Write a short description about your Bakery"
rows="3"
v-model="description"
required
></textarea>
<span class="errNotific" v-if="validation.description">{{validation.description}}</span>
</div>
<div class="col-12">
<ul class="actions">
<li>
<input type="submit" value="Register" class="primary" :disabled="btndisable"/>
</li>
<li>
<input type="reset" value="Reset" />
</li>
</ul>
</div>
</div>
</form>
</template>
<script>
export default {
data() {
return {
bakeryname: "",
ownername: "",
description: "",
validation: [],
}
},
computed: {
btndisable: function() {
return this.validation.length === 0 ? true : false
}
},
methods: {
// select box getting locations and towns
// API call for Submitting bakery registration
// form validation call
check_bakeryname(value) {
if (value == "") {
this.validation["bakeryname"] = "Enter your bakery name";
} else {
this.validation["bakeryname"] = "";
}
},
check_ownername(value) {
if (value == "") {
this.validation["ownername"] = "Enter bakery owner's name";
} else {
this.validation["ownername"] = "";
}
},
check_description(value) {
if (value == "") {
this.validation["description"] = "please fill the description ";
} else {
this.validation["description"] = "";
}
}
},
watch: {
bakeryname(value) {
this.bakeryname = value;
this.check_bakeryname(value);
},
ownername(value) {
this.ownername = value;
this.check_ownername(value);
},
description(value) {
this.description = value;
this.check_description(value);
},
},
}
validationsometimes like an array (defining it as[], and checking.length) and sometimes like an object (settingdescriptionproperty). First you'll need to get that sorted.