Vue3、Element Plus使用v-for循环el-form表单进行校验

在开发中遇到了这样一个需求

有一个form是通过v-for生成出来的,并且数量不确定,每个表单中的字段都需要做校验,就将自己的解决方法记录了下来。

在这里插入图片描述

在这里插入图片描述

完整代码如下

<template>
  <div class="for-form">
    <el-button type="primary" @click="addHandle">新 增</el-button>

    <div class="form-box">
      <div class="form-item" v-for="(item, index) in formList" :key="index">
        <el-form :model="item" :rules="rules" label-width="auto" style="max-width: 300px" label-position="top"
          :ref="($event) => handle($event, index)">
          <el-for
对于Vue 3Element Plus表单校验,你可以按照以下步骤进行设置: 1. 首先,确保你已经安装了Vue 3Element Plus,并在你的项目中引入它们。 2. 创建一个Vue组件,在其中定义你的表单3. 在data属性中添加一个对象,用于存储表单数据和校验规则。例如: ```javascript data() { return { form: { name: &#39;&#39;, email: &#39;&#39; }, rules: { name: [ { required: true, message: &#39;请输入姓名&#39;, trigger: &#39;blur&#39; } ], email: [ { required: true, message: &#39;请输入邮箱地址&#39;, trigger: &#39;blur&#39; }, { type: &#39;email&#39;, message: &#39;请输入正确的邮箱地址&#39;, trigger: [&#39;blur&#39;, &#39;change&#39;] } ] } } } ``` 在上面的例子中,我们定义了一个表单对象`form`,其中包含了`name`和`email`字段。同时,我们定义了校验规则`rules`,对`name`和`email`字段进行校验。 4. 在模板中使用`el-form`和`el-form-item`标签来渲染表单,并绑定校验规则和错误消息。例如: ```html <el-form :model="form" :rules="rules"> <el-form-item label="姓名" prop="name"> <el-input v-model="form.name"></el-input> </el-form-item> <el-form-item label="邮箱" prop="email"> <el-input v-model="form.email"></el-input> </el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> </el-form> ``` 在上面的例子中,我们使用了`prop`属性来指定校验规则的字段名,使用`v-model`指令将表单数据绑定到输入框上。 5. 在组件的方法中,定义一个用于提交表单的方法,并调用`this.$refs.form.validate()`来触发表单校验。例如: ```javascript methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { // 表单校验通过,可以进行提交操作 console.log(&#39;表单校验通过&#39;); } else { // 表单校验不通过,进行错误提示 console.log(&#39;表单校验不通过&#39;); } }); } } ``` 在上面的例子中,我们使用了`this.$refs.form.validate()`方法来触发表单校验,并在回调函数中判断校验结果。 这样,你就可以使用Vue 3Element Plus进行表单校验了。根据实际需求,你可以添加更多的校验规则和自定义错误消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值