• vue3+element-plus 表单校验和循环form表单校验


    1.HTML页面

    1. //el-form 标签添加上
    2. ref="form2Form" :rules="rules2" :model="form2"

    `正常表单校验

    1. //没有循环表单的使用事例
    2. <el-form-item label="投保人名称" class="insurance-date-no1" prop="tbrName">
    3. <el-input v-model="form2.tbrName" type="text" ></el-input>
    4. </el-form-item>

    、循环校验、

    1. //循环校验 校验规则就嵌入在html里面
    2. <div style="width: 100%" class="add-item" v-for="(item,index) in form2.details" :key="index">
    3. <el-form-item label="名称"
    4. :prop="`details.${index}.bbrName`"
    5. :rules="[{ required: true, message: '被保险人名称不能为空!', trigger: 'blur' }]" class="insurance-date-no1">
    6. <el-input v-model="item.bbrName" type="text" maxlength="30"></el-input>
    7. </el-form-item>
    8. </div>

     2、js数据内容

    `校验规则`

    1. const rules2 = {
    2. tbrName: [
    3. { required: true, message: '投保人名称不能为空!', trigger: 'blur' },
    4. ],
    5. tbrType: [
    6. {required: true, message: '投保人类型不能为空!', trigger: 'change',},
    7. ],
    8. tbrCerttype: [
    9. {required: true, message: '投保人证件类型不能为空!', trigger: 'change',},
    10. ],
    11. tbrCertno: [
    12. { required: true, message: '投保人证件号不能为空!', trigger: 'blur' },
    13. ],
    14. tbrPhone: [
    15. { required: true, message: '投保人手机号不能为空!', trigger: 'blur' },
    16. { min: 11, max: 11, message: '投保人手机号长度不对', trigger: 'blur' },
    17. { pattern: /^1[3-9]\d{9}$/, message: '投保人手机号格式不正确', trigger: 'blur' }
    18. ],
    19. tbrEmail: [
    20. { required: true, message: '投保人邮箱不能为空!', trigger: 'blur' },
    21. { pattern: /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/, message: '投保人邮箱格式不正确', trigger: 'blur' }
    22. ],
    23. yymj: [
    24. { required: true, message: '投保人名称不能为空!', trigger: 'blur' },
    25. ],
    26. yyzz: [
    27. {required: true, message: '企业营业性质不能为空!', trigger: 'change',},
    28. ],
    29. orgType: [
    30. {required: true, message: '企业类型不能为空!', trigger: 'change',},
    31. ],
    32. spqyType: [
    33. {required: true, message: '食品企业类型不能为空!', trigger: 'change',},
    34. ],
    35. }

     `数据结构`

    1. const form2 = ref({
    2. "applyNo": "", // 申请编号step1成功会返回
    3. "tbrName":"", // 投保人姓名
    4. "tbrType":"", // 投保人类型
    5. "tbrCerttype":"",//投保人证件类型
    6. "tbrCertno":"",//投保人证件编号
    7. "tbrPhone":"",//手机
    8. "tbrEmail":"",//邮箱
    9. "details":[
    10. {
    11. "bbrName": "", //被保险人名称
    12. "bbrType": "", //被保险人类型
    13. "bbrCerttype": "",//被保险人证件类型
    14. "bbrCertno": "",//被保险人证件编号
    15. "bbrDirthday":"",//被保险人出生日期
    16. "isMain": 1,//是否主被保险人
    17. "bbrOrgType": ""//被保险人企业性质
    18. }
    19. ],
    20. "yymj":"",//营业面积(平方)
    21. "yyzz":"H621",//企业营业性质
    22. "orgType":"21",//企业类型
    23. "spqyType":"3"//食品企业类型
    24. });

     3.提交按钮触发校验功能

    1. /**
    2. * 完成提交
    3. */
    4. function submitFun(){
    5. form2Form.value.validate((valid) => {
    6. if (valid) {
    7. }
    8. });
    9. }

  • 相关阅读:
    顺序读写函数的介绍:fputs & fgets
    计算狗携手成都超算中心和重庆大学,共同助力“碳中和”
    1582. 二进制矩阵中的特殊位置(难度:简单)
    Docker compose部署
    MIPI CSI调试之 raw 数据格式
    开咖啡店生意不好怎么办?这些注意事项一件不能少
    入门简单,轻量好用的低代码开发平台推荐
    vcruntime140_1.dll是什么东东?vcruntime140_1.dll缺失的8个解决方法
    线上如何优雅停机和调整线程池参数?
    房台怎么管理?/
  • 原文地址:https://blog.csdn.net/qq_53722480/article/details/139412947