Vue.js 表单
Vue.js表单
Vue.js是一个流行的JavaScript框架,它可以轻松地构建网页应用程序。其中,Vue.js的表单组件可以让您更轻松地创建和验证表单。
表单元素
常见的表单元素有输入框、文本域、下拉选择框、单选框和复选框。这些元素可以使用Vue.js中的v-model指令进行绑定,在代码中定义对应的变量即可。
<template>
<form>
<label>用户名:</label>
<input type="text" v-model="username"><br>
<label>密码:</label>
<input type="password" v-model="password"><br>
<label>确认密码:</label>
<input type="password" v-model="confirmpassword"><br>
<label>性别:</label>
<input type="radio" v-model="gender" value="male">男
<input type="radio" v-model="gender" value="female">女<br>
<label>城市:</label>
<select v-model="city">
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="guangzhou">广州</option>
</select><br>
<label>爱好:</label>
<input type="checkbox" v-model="hobbies" value="reading">阅读
<input type="checkbox" v-model="hobbies" value="music">音乐
<input type="checkbox" v-model="hobbies" value="travel">旅行<br>
<label>自我介绍:</label>
<textarea v-model="description"></textarea>
</form>
</template>
表单验证
表单验证是使用Vue.js中的v-validate指令。v-validate指令需要与vee-validate插件一起使用。vee-validate是一个基于Vue.js的轻量级插件,用于快速和容易地进行表单验证。
在template内,v-validate与表单元素绑定。在data定义数据,使用rules进行验证。一个数据对应一个数组,该数组包含多个验证规则。Vue.js暴露了大量的内置规则,也可以定制规则。
<template>
<div>
<form>
<label>用户名:</label>
<input type="text" v-model="username" v-validate data-vv-rules="required"><br>
<span v-if="errors.has('username')">{{errors.first('username')}}</span>
<label>密码:</label>
<input type="password" v-model="password" v-validate data-vv-rules="required,min:6"><br>
<span v-if="errors.has('password')">{{errors.first('password')}}</span>
<label>确认密码:</label>
<input type="password" v-model="confirmpassword" v-validate data-vv-rules="required,confirmed:password"><br>
<span v-if="errors.has('confirmpassword')">{{errors.first('confirmpassword')}}</span>
<label>邮箱:</label>
<input type="email" v-model="email" v-validate data-vv-rules="required,email"><br>
<span v-if="errors.has('email')">{{errors.first('email')}}</span>
<label>手机号:</label>
<input type="tel" v-model="phone" v-validate data-vv-rules="required,tel"><br>
<span v-if="errors.has('phone')">{{errors.first('phone')}}</span>
<button type="submit" @click.prevent="submitForm">提交</button>
</form>
</div>
</template>
<script>
import { ValidationProvider, extend } from 'vee-validate';
import { required, email, min, confirmed, tel } from 'vee-validate/dist/rules';
export default {
components: {
ValidationProvider,
},
data() {
return {
username: '',
password: '',
confirmpassword: '',
email: '',
phone: '',
};
},
methods: {
submitForm() {
if (!this.errors.any()) {
alert('提交成功!');
}
},
},
mounted() {
extend('tel', tel);
extend('required', required);
extend('email', email);
extend('min', min);
extend('confirmed', confirmed);
},
};
</script>
总结
在Vue.js应用程序中,表单验证是非常重要的。Vue.js既支持双向绑定,也支持表单验证,能够很好地实现应用程序的界面逻辑。