4 个回答

循环遍历一遍就可以了, 有为空值的就提示

新手上路,请多包涵

最简单的写法就是把需要上传文件的参数循环判断是否有值,如果有一个没有值,就提示

常规的表单,是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()
},
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题