当前位置:   article > 正文

vue- form动态表单验证规则-表单验证_vue动态表单校验

vue动态表单校验

前言

  • 以element官网的form表单的-动态增减表单项为例讲解表单验证规则

  • 动态的功能就是v-model配合push + v-for 便利来实现的

  • 我们需要熟知2个知识点prop表单验证需要跟v-model绑定的值是一样的,

  • 如果是一个数组便利的表单,那就需要绑定这个数组每一项v-model值。

思路讲解

 

代码实例

  1. <template>
  2. <div>
  3.   <el-form
  4.     :model="dynamicValidateForm"
  5.     ref="dynamicValidateForm"
  6.     label-width="100px"
  7.     class="demo-dynamic"
  8.   >
  9.     <el-form-item
  10.       prop="email"
  11.       label="邮箱"
  12.       :rules="[
  13.         { required: true, message: '请输入邮箱地址', trigger: 'blur' },
  14.         {
  15.           type: 'email',
  16.           message: '请输入正确的邮箱地址',
  17.           trigger: ['blur', 'change'],
  18.         },
  19.       ]"
  20.     >
  21.       <el-input v-model="dynamicValidateForm.email"></el-input>
  22.     </el-form-item>
  23.     <el-form-item
  24.       v-for="(domain, index) in dynamicValidateForm.domains"
  25.       :label="'域名' + index"
  26.       :key="domain.key"
  27.       :prop="'domains.' + index + '.value'"
  28.       :rules="{
  29.         required: true,
  30.         message: '域名不能为空',
  31.         trigger: 'blur',
  32.       }"
  33.     >
  34.       <el-input v-model="domain.value"></el-input
  35.       ><el-button @click.prevent="removeDomain(domain)">删除</el-button>
  36.     </el-form-item>
  37.     <el-form-item>
  38.       <el-button type="primary" @click="submitForm()">提交</el-button>
  39.       <el-button @click="addDomain">新增域名</el-button>
  40.       <el-button @click="resetForm()">重置</el-button>
  41.     </el-form-item>
  42.   </el-form>
  43. </div>
  44. </template>
  45. <script>
  46. export default {
  47. data() {
  48.   return {
  49.     dynamicValidateForm: {
  50.       domains: [
  51.         {
  52.           value: "",
  53.         },
  54.       ],
  55.       email: "",
  56.     },
  57.   };
  58. },
  59. methods: {
  60.   submitForm() {
  61.     this.$refs.dynamicValidateForm.validate((valid) => {
  62.       if (valid) {
  63.         alert("submit!");
  64.       } else {
  65.         console.log("error submit!!");
  66.         return false;
  67.       }
  68.     });
  69.   },
  70.   resetForm() {
  71.     this.$refs.dynamicValidateForm.resetFields();
  72.   },
  73.   removeDomain(item) {
  74.     var index = this.dynamicValidateForm.domains.indexOf(item);
  75.     if (index !== -1) {
  76.       this.dynamicValidateForm.domains.splice(index, 1);
  77.     }
  78.   },
  79.   addDomain() {
  80.     this.dynamicValidateForm.domains.push({
  81.       value: "",
  82.       key: Date.now(),
  83.     });
  84.   },
  85. },
  86. };
  87. </script>

总结:


经过这一趟流程下来相信你也对 vue- form动态表单验证规则-表单验证 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/438209
推荐阅读
相关标签
  

闽ICP备14008679号