温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Vue实现ElementUI Form表单校验功能

发布时间:2021-08-24 15:18:00 来源:亿速云 阅读:352 作者:chen 栏目:开发技术

本篇内容介绍了“Vue实现ElementUI Form表单校验功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

以下是form的demo

el-form :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="demo-dynamic">   <el-form-item     prop="email"     label="邮箱"     :rules="[       { required: true, message: '请输入邮箱地址', trigger: 'blur' },       { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }     ]"   >     <el-input v-model="dynamicValidateForm.email"></el-input>   </el-form-item>   <el-form-item     v-for="(domain, index) in dynamicValidateForm.domains"     :label="'域名' + index"     :key="domain.key"     :prop="'domains.' + index + '.value'"     :rules="{       required: true, message: '域名不能为空', trigger: 'blur'     }"   >     <el-input v-model="domain.value"></el-input><el-button @click.prevent="removeDomain(domain)">删除</el-button>   </el-form-item>   <el-form-item>     <el-button type="primary" @click="submitForm('dynamicValidateForm')">提交</el-button>     <el-button @click="addDomain">新增域名</el-button>     <el-button @click="resetForm('dynamicValidateForm')">重置</el-button>   </el-form-item> </el-form> <script>   export default {     data() {       return {         dynamicValidateForm: {           domains: [{             value: ''           }],           email: ''         }       };     },     methods: {       submitForm(formName) {         this.$refs[formName].validate((valid) => {           if (valid) {             alert('submit!');           } else {             console.log('error submit!!');             return false;           }         });       },       resetForm(formName) {         this.$refs[formName].resetFields();       },       removeDomain(item) {         var index = this.dynamicValidateForm.domains.indexOf(item)         if (index !== -1) {           this.dynamicValidateForm.domains.splice(index, 1)         }       },       addDomain() {         this.dynamicValidateForm.domains.push({           value: '',           key: Date.now()         });       }     }   } </script>

Vue实现ElementUI Form表单校验功能

首先对el-form标签中的几个关键属性进行说明

  • ref: 当前表单的唯一标识

  • model: 表单绑定的对象

  • rules: 字段校验规则

rules字段用来定义各个字段具体的校验规则,用法请查阅开篇的demo示例,其中required标识字段是否必填,message为校验提示语,trigger为单个校验触发方式;也可以通过validator字段自定义校验规则,方法validateProductName中对商品名称做了判空及长度校验,需要注意的是所有的条件分支都要做callback处理,否则校验可能会导致异常。

1、重置表单

调用表单重置方法this.$refs.dynamicValidateForm.resetFields()实现。

当然像datetimerange类型的日期控件是无法通过该方法进行重置,必须手动重置绑定的字段。

2、 清除校验提示语

调用方法this.$refs.dynamicValidateForm.clearValidate()实现。

如果仅需要清除单个控件的提示语,只要把该控件对应的prop属性值作为参数传入即可。

还有另外一种方式就是在该控件对应的el-form-item标签中增加ref属性值,然后调用clearValidate方法。

“Vue实现ElementUI Form表单校验功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue
AI