常规的表单,是rules,你这个是form表单里面有个table,可能有多行几列的可输入框,每行都需要验证提示。
尝试一下这个方法:
动态处理prop的值,动态生成rules验证规则。
然后在formEl.validate()。
html部分
<el-form-item label-width="0" prop="list" ref="tablefile">
<el-table :data="form.list">
<el-table-column label="操作">
<temlate slot-scope="scope">
<el-upload v-if="!scope.row.file" :on-success="onSuccess">选取文件</el-upload>
<span v-else>{{ scope.row.file }}</span>
</temlate>
</el-table-column>
</el-table>
</el-form-item>
自定义验证规则
let tablecheck = (rule, value, callback) => {
if (value) {
for (let i in value) {
if (!value[i].file) {
let index = i + 1
return callback(new Error('第' + index + '行无上传文件'));
break
}
}
} else {
callback();
}
}
绑定自定义验证规则
rules: {
list: {
validator: tablecheck, trigger: 'change'
}
}
上传成功后清除验证规则
onSuccess(file) {
//上传成功后拿到图片链接,同时清除验证规则
this.$refs['tablefile'].clearValidate()
},
13 回答13k 阅读
8 回答2.7k 阅读
2 回答5.2k 阅读✓ 已解决
7 回答2.1k 阅读
5 回答1.3k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
循环遍历一遍就可以了, 有为空值的就提示