form表单 在表格中校验

需求:
表格中添加input并进行校验。
数据比较复杂,所以写起来有点麻烦

<el-form ref="perform" :model="perforModel" :rules="perRules" >
<div  v-for="(item,index) of perforModel.basData"  :key="index">
 <el-table ref="multipleTable" max-height="250" center border :data="item.indicatorThirdLibraryList" tooltip-effect="dark" style="width: 100%">
  <el-table-column prop="name" label="名称" align="center">
     </el-table-column>
     <el-table-column prop="score" label="值" align="center">
         <template slot-scope="scope">
             <el-form-item :prop="'basData.'+index+'.indicatorThirdLibraryList.'+scope.$index+'.score'" :rules="{required:true, message:'请输入', trigger:'blur'}">
                 <el-input class="sorClas" v-model="scope.row.score" type="number" @input="change($event)" :placeholder="'请输入值'"></el-input>
             </el-form-item>
         </template>
     </el-table-column>
     </el-form-item>
 </el-table>
 </div>
</el-form>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用 Element Plus 表单嵌套表格,并且需要进行校验,可以使用以下步骤: 1. 在表格定义需要校验的列,并设置验证规则。 2. 在表单使用 el-table-column 组件来定义表格的列,同时设置 prop 属性为表格数据的对应字段。 3. 在 el-table-column 组件,使用 scoped slot 来定义表格单元格的内容,同时使用 el-form-item 组件来包裹表格单元格的输入控件,以实现表格单元格的输入控件校验。 4. 在 el-form 组件使用 ref 属性来设置表单的引用名称,以便在提交表单时进行表单校验。 5. 在表单提交时,可以通过 this.$refs.form.validate() 方法来进行表单校验。 下面是一个使用 Element Plus 表单嵌套表格进行校验的示例代码: ```html <template> <el-form ref="form" :model="form" label-width="120px" rules="rules"> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"> <template #default="{ row }"> <el-form-item :prop="'name' + row.id"> <el-input v-model="row.name"></el-input> </el-form-item> </template> </el-table-column> <el-table-column prop="age" label="年龄"> <template #default="{ row }"> <el-form-item :prop="'age' + row.id"> <el-input v-model="row.age"></el-input> </el-form-item> </template> </el-table-column> </el-table> <el-button type="primary" @click="submitForm">提交</el-button> </el-form> </template> <script> export default { data() { return { form: { tableData: [ { id: 1, name: '', age: '' }, { id: 2, name: '', age: '' } ] }, rules: { tableData: [ { type: 'array', required: true, message: '请至少添一条记录' }, { validator: (rule, value, callback) => { for (let i = 0; i < value.length; i++) { const row = value[i] const nameProp = `name${row.id}` const ageProp = `age${row.id}` this.$refs.form.validateField(nameProp, error => { if (error) { callback(error) } else { this.$refs.form.validateField(ageProp, error => { if (error) { callback(error) } else { callback() } }) } }) } }, trigger: 'submit' } ] } } }, methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { console.log('表单校验通过') } else { console.log('表单校验失败') } }) } } } </script> ``` 在这个示例代码,我们定义了一个包含两列(姓名和年龄)的表格,同时设置了每行数据的校验规则。在表格单元格,我们使用了 el-form-item 组件来包裹输入控件,并且在 el-form 组件设置了引用名称为 form,以便在提交表单时进行校验。在表单提交时,我们通过调用 this.$refs.form.validate() 方法来进行表单校验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值