• 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. }

  • 相关阅读:
    【前端修炼场】 — HTML常用的标志语言
    学习【Cesium】第九篇,鼠标交互和数据查询(学不会揍我)
    【408篇】C语言笔记-第十章(线性表)
    macbook m1 nacos集群启动失败报错的解决办法
    C/C++ 乘积尾零问题(蓝桥杯)
    WPF开源的一款免费、开箱即用的翻译、OCR工具
    【ROS 06】机器人系统仿真
    通过实战操作学git
    权重衰退(PyTorch)
    HTML笔记(标签、)
  • 原文地址:https://blog.csdn.net/qq_53722480/article/details/139412947