首页 > 其他分享 >element表单验证在遍历中的使用

element表单验证在遍历中的使用

时间:2023-08-14 17:22:40浏览次数:34  
标签:遍历 name list 表单 trigger message element subject

之前使用表单验证时,都是对象形式,比较简单,直接按官网demo来即可满足要求,官网链接如下:

 https://element-plus.gitee.io/zh-CN/component/form.html

代码如下:

<template>
  <div>
    <el-form ref="ruleForm" :model="myForm" :rules="rules">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="myForm.name"></el-input>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
export default {
  name: "menu1-1",
  data () {
    return {
      myForm: {
        name: '',
      },
      rules: {
        name: [
          { required: true, message: '请输入姓名', trigger: 'blur' },
          { min: 2, max: 10, message: '长度在2到10个字', trigger: 'blur' }
        ]
      }
    }
  }
}
</script>

遍历时表单验证

提示:

1、每个form-item都需要rules,而不是像之前把rules放到el-form那一行

2、props需要采用模板语法 list.${index} 的形式,使用item匹配不到,如下方代码所示

<template>
  <div>
    <el-form ref="ruleForm" :model="myForm" >
      <el-form-item label="姓名" prop="name" :rules="rules.name">
        <el-input v-model="myForm.name"></el-input>
      </el-form-item>

      <div v-for="(item, index) in myForm.list" :key="index">
        <el-form-item label="科目" :prop="`list.${index}.subject`" :rules="rules.subject">
          <el-select v-model="item.subject">
            <el-option
                v-for="ite in subjectList"
                :key="ite.label"
                :label="ite.label"
                :value="ite.id"
            />
          </el-select>
        </el-form-item>
      </div>

    </el-form>

    <el-button @click="onSubmit">提交</el-button>
  </div>
</template>
<script>
export default {
  name: "menu1-1",
  data () {
    return {
      myForm: {
        name: '',
        list: [
          { subject: '' },
          { subject: '' },
          { subject: '' }
        ]
      },
      subjectList: [
        {id: '1', label: '语文'},
        {id: '2', label: '数学'},
        {id: '3', label: '英语'}
      ],
      rules: {
        name: [
          { required: true, message: '请输入姓名', trigger: 'blur' },
          { min: 2, max: 10, message: '长度在2到10个字', trigger: 'blur' }
        ],
        subject: [
          { required: true, message: '请选择科目', trigger: 'change' }
        ]
      }
    }
  },
  methods: {
    onSubmit () {
      this.$refs.ruleForm.validate(valid => {
        if (valid) {
          console.log('提交的form表单', this.myForm)
        }
      })
    }
  }
}
</script>

最重要的代码就是这一句,如下图所示

 如果list以下还有数组需要遍历,也就是两层遍历,props则可以这么写。如果是三层遍历的话,那就得考虑优化数据结构了

:prop="`list.${index}.${i}.subject`"
// i是list数组下的数组键值

好了,以上就是遍历时表单验证处理的所有内容了

标签:遍历,name,list,表单,trigger,message,element,subject
From: https://www.cnblogs.com/yyzhiqiu/p/17620739.html

相关文章

  • 二叉树的迭代遍历-栈
    二叉树的迭代遍历-栈二叉树的递归遍历书写简单,做题时能够帮助快速完成dfs但是往往有某些面试官或者题目要求,使用迭代法完成树的遍历作为复习材料,不导出推导过程,只给出核心记忆点TreeNodepublicclassTreeNode{intval;TreeNodeleft;TreeNoderight;......
  • SAP Fiori Elements 应用里标准模板 XML Fragment 加载的逻辑和 XMLPreprocessor 的作
    触发时间点是XMLPreprocessor的insertFragment方法:上图的调试器上下文里,我们看到了XMLPreprocessor.js的实现,它是SAPUI5框架中一个重要的文件,它主要负责处理XML视图的预处理工作。对于SAPUI5中的视图创建,可以使用JavaScript、JSON、XML等多种方式。其中,XML......
  • 关于 SAP Fiori Elements 应用的 ResponsiveTableColumnsExtension 扩展
    笔者这篇教程介绍了如何在SAPFioriElements应用的manifest.json里注册Extensionfragment,从而给ListReport应用的Table区域新增自定义列:10.如何通过扩展(Extension)的方式给SAPFioriElementsListReport的表格新增列请大家注意下图高亮的扩展:ResponsiveTabl......
  • 二叉树的层次遍历
    #include<stdio.h>#include<stdlib.h>#defineMaxSize100typedefstructTreeNode{ intdata; structTreeNode*lchild,*rchild;}TreeNode,*Tree;typedefstruct{ TreeNode*data[MaxSize]; intfront; intrear;}Queue;voidInitQueue(Queue......
  • 二叉树的非递归遍历
    //非递归操作#include<stdio.h>#include<stdlib.h>#defineMaxSize200typedefstructTreeNode{intdata;structTreeNode*lchild,*rchild;}TreeNode,*Tree;typedefstruct{Treedata[MaxSize];inttop;}Stack;voidInitStack(S......
  • 二叉树的递归遍历
    #include<stdio.h>#include<stdlib.h>typedefstructTNode{intdata;structTNode*lchild,*rchild;}TreeNode,*Tree;/*在这段代码中,递归函数`CreateTree`在执行`return`语句后,会立即返回到调用它的上一层递归调用。但是,整个递归过程并没有结束,仍然会......
  • JSON生成Form表单的方法示例
    JSON生成Form表单的方法示例 更新时间:2018年11月21日14:21:14 作者:熟悉的陌生人  JSON表单是一个基于React的抽象组件,它可以把JSON数据格式描述的表单转换成项目中的表单,这篇文章主要介绍了JSON生成Form表单的方法示例,感兴趣的小伙伴们可以参考一下 JSON表单描述......
  • P9534 [YsOI2023] 广度优先遍历
    好题。首先考虑到对于任意的边的输入顺序,分层图是不会变的,即所有点到根的最短距离不变。那么分为两种边,分别为不同层的边相连,相同层的边相连。显然第二种边是无用的,我们将其放到最后输出即可。由于下层的决策会影响上层的决策而且不同层之间的边的顺序不会影响答案,所以我们按......
  • import.meta.globEager('./src/components/**/*.vue'); 遍历文件
    main.jsconstimportAll=(modules)=>{Object.keys(modules).forEach((key)=>{constcomponent=key.replace('/src/','@/').replace('.vue','');constcomponentName=key.split('/').slice......
  • 二叉树的层序遍历
    intfindBottomLeftValue(TreeNode*root){queue<TreeNode*>qu;if(root!=nullptr)qu.push(root);intsize=0;intresult=0;while(!qu.empty()){TreeNode*temp;size=qu.size();......