0👍
✅
In your code there are some mistakes, why are you checking this.errmsg.email < this.email.minemail
, I didn’t get why less than <
sign is there.
Also, why you need to watch every email id change, just use "input"
event and it will do the same job on email change.
I modified the code below, as per what I understand from seeing the variables that you provided above.
<template>
<div>
<input type="text" v-validate="'required'" name="email" placeholder="Enter your company email ID" @input="validateEmail" :maxlength="maxemail" id='email' v-model="email" />
<div v-if="errmsg.email" class="invalid-feedback-register">
{{errmsg.email}}
</div>
<button type="submit" :class="(isDisabled) ? '' : 'selected'"
:disabled="isDisabled" @click="persist">PROCEED</button>
</div>
</template>
<script>
export default {
data() {
return {
email: null,
errmsg: { email: '' },
maxemail: 60
}
},
computed: {
isDisabled () {
return (!this.email || this.errmsg.email !== '')
}
},
methods: {
validateEmail() {
// eslint-disable-next-line
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.email)) {
this.errmsg.email = ''
} else this.errmsg['email'] = 'Invalid Email Address';
},
persist () {
}
}
}
Source:stackexchange.com