本文中咱们以Vuetify中的v-text-field组件为例总结Vuetify内置的表单校验规则支持。vue
要向字段添加验证,咱们必须作两件事:npm
参考下面的例子:api
required是HTML5新引入的一个属性,required 属性规定必需在表单提交以前填写输入字段。
若是使用该属性,则字段是必填(或必选)的。
【注释】required 属性适用于如下 <input> 类型:text, search, url, telephone, email, password, date pickers, number, checkbox, radio 以及 file。网络
Vuetify官方仅仅简单地给出v-text-field组件中属性(Prop) rules的基本介绍,以下图,并无给出详细的使用举例:app
结合网络上已有使用经验,能够得出的结论是:对于少许基本的表单组件的规则校验可使用上面的required属性及这里的Vuetify组件中专有的rules属性实现支持。事实上,第一个图中已经给出了使用格式。框架
上面使用的校验规则以下:less
对于上面例子的更复杂实用一点的版本以下:ide
而后,在data中定义以下规则:ui
v-form组件提供了三个功能与校验操做相关,咱们能够经过在组件上设置ref来访问它们。例如,<v-form ref="form">。this
<template> <v-form ref="form" v-model="valid" lazy-validation > <v-text-field v-model="name" :counter="10" :rules="nameRules" label="Name" required ></v-text-field> <v-text-field v-model="email" :rules="emailRules" label="E-mail" required ></v-text-field> <v-select v-model="select" :items="items" :rules="[v => !!v || 'Item is required']" label="Item" required ></v-select> <v-checkbox v-model="checkbox" :rules="[v => !!v || 'You must agree to continue!']" label="Do you agree?" required ></v-checkbox> <v-btn :disabled="!valid" color="success" class="mr-4" @click="validate" > Validate </v-btn> <v-btn color="error" class="mr-4" @click="reset" > Reset Form </v-btn> <v-btn color="warning" @click="resetValidation" > Reset Validation </v-btn> </v-form> </template> <script> export default { data: () => ({ valid: true, name: '', nameRules: [ v => !!v || 'Name is required', v => (v && v.length <= 10) || 'Name must be less than 10 characters', ], email: '', emailRules: [ v => !!v || 'E-mail is required', v => /.+@.+\..+/.test(v) || 'E-mail must be valid', ], select: null, items: [ 'Item 1', 'Item 2', 'Item 3', 'Item 4', ], checkbox: false, }), methods: { validate () { this.$refs.form.validate() }, reset () { this.$refs.form.reset() }, resetValidation () { this.$refs.form.resetValidation() }, }, } </script>
根据本人搜索分析,通过大浪淘沙式筛选后,目前移居首位的Vue库扩展校验方案非vee-validate莫属。并且,这个库是一套完整的基于模板的Vue校验框架,提供了全面的支持网页,而且它紧跟Vue的下一个版本,很是有必要在企业开发中做详细研究使用。
还有一个轻量级的表单级的校验库是https://vuelidate.netlify.com/ Vuelidate,有兴趣有读者能够研究。
参考
https://vuetifyjs.com/en/api/v-text-field/#props
https://www.jenniferbland.com/form-validation-with-vuetify-in-a-vue-app/
https://blog.csdn.net/weixin_43970743/article/details/99976701