el-form中嵌套一个el-form 进行表单校验

 数据格式为form对象中嵌套一层可循环数组,数组内嵌套table表格,也可循环

form: {
  id: row.id,
  process: [{
   code: '',
    log: [{
      id: ''
    }]
  }]
}
<el-form :model="form" ref="form" v-for="(item, index) in form.process" :key="index" class="bord">
  <el-form-item
    :prop="'process.' + index + '.code'"
    :rules="[{ required: true, message: '请选择数据', trigger: 'change' }]"
  >
  <el-select v-model="item.code" placeholder="请选择数据" @change="getChange(item,item.code)">
   <el-option
   v-for="i in data"
    :key="i.value"
    :label="i.label"
    :value="i.value"
    />
   </el-select>
  </el-form-item>
  <el-form :model="form.process[index]" ref="process.lage">
    <el-table
      ref="lage"
      class="sort-table"
      v-model="item.lage"
      :data="item.lage"
      max-height="240"
      :header-cell-style="{textAlign: 'center'}"
      :cell-style="{ textAlign: 'center' }"
     >
     <el-table-column
       type="index"
       label="序号"
       width="60"
      />
     <el-table-column
       prop="id"
       label="节点id"
       width="80"
     >
      <template v-slot="scope">
        <el-form-item
         :prop="'lage.' + scope.$index + '.id'"
         :rules="[{ required: true, message: '请输入id', trigger: 'blur' }]"
        >
          <el-input v-model="scope.row.id" placeholder="请输入id" />
        </el-form-item>
       </template>
      </el-table-column>
     </el-table>
  </el-form>
</el-form>

 点击按钮提交表单时校验

save() {
  Promise.all([this.$refs['form'][0].validate(), this.$refs['process.lage'][0].validate()]).then(() => {
    //接口等一系列正常操作
    })
  })
},

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
el-form-renderer是一个基于Element UI的表单渲染器,用于简化表单的开发和校验。而el-form-item是el-form-renderer一个组件,用于包裹表单项并进行校验。 在el-form-item,可以通过rules属性来定义校验规则。rules属性是一个数组,每个元素都是一个对象,用于描述一个校验规则。每个规则对象包含以下属性: 1. required(必填):指定该字段是否为必填项,可以是一个布尔值或者一个函数。如果是函数,则根据函数的返回值来确定是否必填。 2. validator(自定义校验函数):指定一个自定义的校验函数,该函数接收三个参数:rule(当前规则对象)、value(当前字段的值)和callback(回调函数)。在自定义校验函数,可以根据具体的业务逻辑进行校验,并通过调用callback回调函数来返回校验结果。 3. trigger(触发方式):指定触发校验的方式,默认为'change',即在字段值改变时触发校验。还可以设置为'blur'(失去焦点时触发校验)或'submit'(表单提交时触发校验)。 4. message(错误提示信息):指定校验失败时的错误提示信息。 以下是一个示例代码,展示了如何在el-form-renderer使用el-form-item进行校验规则的定义: ```html <el-form-renderer :model="formData" :rules="formRules"> <el-form-item label="用户名" prop="username"> <el-input v-model="formData.username"></el-input> </el-form-item> </el-form-renderer> ``` ```javascript data() { return { formData: { username: '' }, formRules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 6, max: 12, message: '用户名长度在6到12个字符之间', trigger: 'blur' } ] } }; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值