el-form中数组嵌套对象的验证

最近在遇到的问题,在el-form里有一个嵌套对象的数组,要对数组里的对象的各个属性进行验证,直接在rules里写属性名是不行的需要在el-form的结构和eules都做一下处理,这里附上我解决问题之后写的demo代码。

这里是页面结构

el-form中有数组内嵌对象,对内嵌对象内的属性做校验

```vue
el-form-item可单独设置label-width设置后覆盖form上设置的统一的label-width
<el-form :model="formData" :rule="rules" label-width="0">
    <el-form-item>
    <input v-model="formData.brand" />
    </el-form-item>
//这里是数组的数据,我的是可以新增的数组,一样适用这种处理
<div v-for="(item,index) in formData.phones" :key="index" >
//prop绑定
    <el-form-item :prop=`phones[${index}].name`
//rules定义好之后,一定要在这里引入一下
    :rules="rules.productGroupRules.name">
    <input v-model="item.name" />
    </el-form-item> 
      <el-form-item :prop=`phones[${index}].type`
       :rules="rules.productGroupRules.type">
    <input v-model="item.type" />
    </el-form-item>
</div>
</el-form>

这里是form数据和rules

 formData:{
                brand:'华为',
                phones:[{name:'华为mate40'type:'Mate40 5G'},
                       {{name:'华为mate30'type:'Mate30 5G'}]
            },
                rules:{
                    brand:[{required,message:'11111'}],
                    //这里是数组的rules设置
                    productGroupRules{
                    name:[{required,message:'name不为空'}],
                    type:[{required,message:'type不为空'}]
                    }
                }
        }

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Element UI 的 `el-form` 组件来验证数组是否为空,您可以使用自定义校验规则。以下是一个示例代码: ```html <template> <el-form ref="myForm" :model="form" :rules="rules" label-width="120px"> <el-form-item label="数组选项" prop="arrayOptions"> <el-select v-model="form.arrayOptions" multiple placeholder="请选择"> <el-option label="选项1" value="option1"></el-option> <el-option label="选项2" value="option2"></el-option> <el-option label="选项3" value="option3"></el-option> </el-select> </el-form-item> <el-button type="primary" @click="validateForm">提交</el-button> </el-form> </template> <script> export default { data() { return { form: { arrayOptions: [] }, rules: { arrayOptions: [ { type: 'array', required: true, message: '请选择至少一个选项', trigger: 'blur' } ] } }; }, methods: { validateForm() { this.$refs.myForm.validate(valid => { if (valid) { alert('表单验证通过'); } else { alert('表单验证失败'); } }); } } }; </script> ``` 在上面的示例,我们通过 `ref` 属性给 `el-form` 组件命名为 `"myForm"`,并定义了一个名为 `"form"` 的数据对象,其包含了一个数组类型的属性 `"arrayOptions"`。我们还定义了一个名为 `"rules"` 的规则对象,其 `"arrayOptions"` 属性的规则指定了该字段为数组类型,且必填。 在提交按钮的点击事件,我们通过 `this.$refs.myForm.validate` 方法来触发表单验证。如果验证通过,弹出提示 "表单验证通过";如果验证失败,弹出提示 "表单验证失败"。 通过这种方式,您可以使用 `el-form` 组件来验证数组是否为空。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值