Я пытаюсь понять и обойти, чтобы проверить простую форму, но проблема, с которой я сталкиваюсь, заключается в том, что при загрузке страницы отображается сообщение «Ошибка» или «Успех», которое должно отображаться только на keypress
или mouseout
событие.
Более того, я не могу понять, как проверить раскрывающийся список, и, наконец, когда пользователь нажимает кнопку «Отправить», он может проверить, все ли поля заполнены и правильно ли заполнить форму.Ниже приведен мой код и моя ссылка на JSFiddle
HTML
<div id="app">
<div>
<label for="name">Name</label>
<input type="text" @keypress="checkField" v-model="name">
<span v-if="checkName">Checks out </span>
<span v-if="!checkName">Pleas enter valid name</span>
</div>
<div>
<label for="Age">Age</label>
<input type="number" @keypress="checkField2" v-model="age">
<span v-if="checkAge">Enter Valid Age </span>
<span v-if="!checkAge">Not a valid age</span>
</div>
<div>
<select name="" id="">
<option disabled selected>Please Choose</option>
<option v-for="gender in genders" :value="gender">
{{gender}}
</option>
</select>
<span v-if="genderField">Please select a gender</span>
<span v-if="!genderField">Green means go</span>
</div>
<div>
<button @click="checkSubmit(e)">Submit</button>
</div>
</div>
JS
data: {
name: "",
checkName: "",
age: "",
checkAge: "",
genders : ["Male",'Female',"Other"],
genderField: ""
},
methods: {
checkField() {
if (!this.amount) {
this.checkName = true
}
},
checkGender() {
if(!this.genders){
this.genderField = true
}
},
checkSubmit(e){
//check if all fields are filled before submitting
alert("it is working")
e.preventDefault()
}
}
})