element form 校验数组每一项实例代码

要实现element form校验数组每一项的功能,需要使用element-ui提供的表单校验方法和v-for指令进行遍历。

首先,在HTML中使用v-for指令进行数组遍历,生成多组表单。在每个表单中,除了设置v-model绑定数据,还需要设置rules属性绑定每个表单元素的验证规则和提示信息。如下所示:

<template>
  <el-form ref="form" :model="form" :rules="rules">
    <el-form-item v-for="(item, index) in form.list" :key="index" :label="'Item ' + index">
      <el-input v-model="item.name" autocomplete="off"></el-input>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        list: [
          { name: '' },
          { name: '' },
          { name: '' }
        ]
      },
      rules: {
        list: [
          { validator: this.validateList, trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    validateList(rule, value, callback) {
      for (let i = 0; i < value.length; i++) {
        const item = value[i]
        if (!item.name) {
          callback(new Error(`Item ${i} is required`))
          return
        }
      }
      callback()
    }
  }
}
</script>

以上代码展示了如何使用v-for指令遍历数组,生成多个表单元素,并在校验时循环遍历每个表单元素的值,根据自定义规则进行校验。

另外,可以结合element-ui提供的验证规则方法进行验证,如下所示:

<template>
  <el-form ref="form" :model="form">
    <el-form-item v-for="(item, index) in form.list" :key="index" :label="'Item ' + index">
      <el-input v-model="item.name" autocomplete="off" :placeholder="`Please input Item ${index}`"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submitForm">Submit</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        list: [
          { name: '' },
          { name: '' },
          { name: '' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.form.validate(valid => {
        if (valid) {
          alert('Submit Successfully!')
        } else {
          alert('Validation Failed!')
          return false
        }
      })
    }
  },
  mounted() {
    this.$nextTick(() => {
      this.$refs.form.addValidateMethod((done, values) => {
        for (let i = 0; i < values.list.length; i++) {
          const item = values.list[i]
          if (item.name.trim() === '') {
            done(false, `Item ${i} is required`)
            return
          }
        }
        done()
      })
    })
  }
}
</script>

以上代码展示了如何使用el-form中的validate方法进行表单校验,并结合addValidateMethod方法自定义验证规则,当表单中每个条目的值不能为空时,触发校验失败并输出错误提示信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:element form 校验数组每一项实例代码 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQuery replaceAll()的例子

    下面是关于jQuery replaceAll()方法的详细攻略。 什么是replace方法 首先需要了解的是replace()方法,它是JavaScript中String对象的一个方法。当用它替换字符串时,会找到指定的字符或者子串,将其替换成新的字符或者子串。下面是一个简单的replace()方法的例子: const str = "Hello Wo…

    jquery 2023年5月12日
    00
  • jQuery()方法的第二个参数详解

    jQuery()方法是jQuery库中最有用的方法之一,它用于从DOM中查询和选择元素。在jQuery中调用jQuery()方法时,第一个参数是一个字符串,表示要查询和选择的CSS选择器或HTML字符串,而第二个参数是一个可选的上下文,可以限制要搜索的范围。本篇攻略将详细讲解jQuery()方法的第二个参数的使用。 理解第二个参数 jQuery()方法的第二…

    jquery 2023年5月28日
    00
  • jQWidgets jqxMenu keyboardNavigation属性

    以下是关于 jQWidgets jqxMenu 组件中 keyboardNavigation 属性的详细攻略。 jQWidgets jqxMenu keyboardNavigation 属性 jQWidgets jqxMenu 组件的 keyboardNavigation 属性用于启用或禁用键盘导航功能。启用该功能后,用户可以使用键盘上的方向键和回车键来浏览…

    jquery 2023年5月12日
    00
  • 如何使用复选框来显示和隐藏div元素

    使用复选框来显示和隐藏div元素需要以下几个步骤: 第一步:准备HTML代码 在页面中插入一个复选框,并为需要操作的div元素添加一个id属性。例如: <input type="checkbox" id="toggle-div"> <div id="my-div">这是需要显…

    jquery 2023年5月12日
    00
  • jQuery初学:find()方法及children方法的区别分析

    jQuery初学:find()方法及children方法的区别分析 jQuery 是一种广泛使用的 JavaScript 库,它可以使操作 HTML 文档变得更加容易。而 jQuery 中的选择器和查找方法更是让开发变得更简单。本篇文章主要讲解 jQuery 中 find() 和 children() 方法的区别和使用示例。 find() 方法 find()…

    jquery 2023年5月28日
    00
  • JQuery使用index方法获取Jquery对象数组下标的方法

    获取JQuery对象数组下标的方法,主要是通过JQuery的index()方法实现的,下面详细阐述其攻略步骤: 1. 选择JQuery对象 首先需要选择需要获取下标的JQuery对象,可以使用选择器进行选择,例如: var $list = $("ul li"); 2. 使用index()方法获取下标 index()方法返回所选元素的0-b…

    jquery 2023年5月28日
    00
  • jQWidgets jqxFormattedInput val() 方法

    jQWidgets jqxFormattedInput val() 方法 jQWidgets是一个基于jQuery的UI组件库,提供了丰富的UI件和工具,包括表格、图表、日历、菜单等。jqxFormattedInput是jQWidgets中的一个组件,可以用于输入和格式化数字、货币、日期等。jqxFormattedInput提供了val()方法,用于获取或设…

    jquery 2023年5月9日
    00
  • jquery.uploadifive插件怎么解决上传限制图片或文件大小问题

    当我们在使用 jQuery Uploadify 进行文件或图片上传的过程中,会遇到一些上传限制的问题,例如上传的文件大小不能超过指定的大小,上传的文件格式必须是指定的类型等问题。不过我们可以使用 jQuery Uploadify 提供的一些解决办法来解决这些问题。 以下是解决上传限制图片或文件大小问题的完整攻略: 第一步:引入相关文件 在页面中引入 jQue…

    jquery 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部