解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题


Posted in Javascript onAugust 24, 2018

我要实现的功能是在上传文件之前校验是否表格中存在重复的数据,有的话,需要弹窗提示是否覆盖,确认之后继续上传,取消之后,就不再上传。

项目中用的element-ui是V1.4.3

<el-upload
   class="upload-demo" drag
   ref="fileUpload"
   :action="urls.fileUpload"
   :on-success="handleUploadSuccess"
   :on-error="handleUploadError"
   :on-progress="progressUpload"
   :before-upload="beforeUpload"
   show-file-list
   multiple>
   <i class="el-icon-upload"></i>
  <div class="el-upload__text">点击上传,或者拖拽到这里</div>
 </el-upload>

解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题

代码中我是将before-upload方法返回false,然后点击确认之后,调_this.$refs.fileUpload.submit();但是在点击确定之后,文件还是没有上传,后面去看了element-ui源码,发现before-upload方法如果返回false,submit()方法是会被拦截的。
还有第二个问题,就是取消时_this.$refs.fileUpload.clearFiles();我调的clearFiles()方法,这个方法会把文件列表全部清空,我只想删除我当时取消的那个文件。
后面将这两句换成了如下两句:

解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题

继续上传: _this.$refs.fileUpload.$children[0].post(file);

取消时在文件列表中删除该文件:_this.$refs.fileUpload.handleRemove(file);

补充:VUE2.0 element upload使用

<template>
 <div class="uptemp">
  <el-upload
   class="upload-demo"
   ref="upload"
   multiple="false"
   action="/web/api/uploadFile"
   :on-preview="handlePreview"
   :on-remove="handleRemove"
   :on-change="handleChange"
   :before-upload="beforeUpload"
   :file-list="fileList"
   :auto-upload="false"
   :multiple="false">
   <el-button slot="trigger" size="small" type="primary">选取文件</el-button>
   <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">导入</el-button>
   <div slot="tip" class="el-upload__tip">只能上传jpg/png文件</div>
  </el-upload>
 </div>
</template>
<script>
 export default {
  data() {
   return {
    fileList: []
   }
  },
  mounted: function () {
   //加载完页面执行的函数
  },
  methods: {
   submitUpload() {
    this.$refs.upload.submit();
   },
   handleRemove(file, fileList) {
    console.log(file, fileList);
   },
   handlePreview(file) {
    console.log(file);
   },
   handleChange(file, fileList){
    console.log(file);
    console.log(fileList);
   },
   beforeUpload: function (file) {
    console.log(file)
    //这里是重点,将文件转化为formdata数据上传
    let fd = new FormData()
    fd.append('file', file)
    this.$http.post('/web/api/uploadFile', fd).then((res) => {
     console.log(res)
    }, (res) => {
     console.log(res)
    });
    return false;
   }
  },
  components: {
//      组件
  }
 }
</script>
<style scoped>
</style>
<style>
 .uptemp .el-upload-list {
  position: absolute;
  left: 140px;
  top: 0;
  width: 50%;
 }
 .uptemp {
  position: relative;
 }
 .uptemp .el-upload-list .el-upload-list__item {
  margin-top: 0;
 }
</style>

总结

以上所述是小编给大家介绍的解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
兼容ie和firefox js关闭代码
Dec 11 Javascript
javascript常用对话框小集
Sep 13 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
jQuery实现表单步骤流程导航代码分享
Aug 28 Javascript
使用JQuery 加载页面时调用JS的实现方法
May 30 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
Oct 15 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
Jun 28 Javascript
js 中rewrap-ajax.js插件实例代码
Oct 20 Javascript
vuex实现及简略解析(小结)
Mar 01 Javascript
微信小程序在text文本实现多种字体样式
Nov 08 Javascript
JS实现动态无缝轮播
Jan 11 Javascript
使用jQuery实现购物车
Oct 29 jQuery
AngularJS自定义表单验证功能实例详解
Aug 24 #Javascript
Vue源码解读之Component组件注册的实现
Aug 24 #Javascript
element-ui 关于获取select 的label值方法
Aug 24 #Javascript
微信小程序用户信息encryptedData详解
Aug 24 #Javascript
element-ui 中的table的列隐藏问题解决
Aug 24 #Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 #Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
Aug 24 #Javascript
You might like
将OICQ数据转成MYSQL数据
2006/10/09 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
javascript中对对层的控制
2006/12/29 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
JS中三目运算符和if else的区别分析与示例
2014/11/21 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
jQuery+css3实现文字跟随鼠标的上下抖动
2015/07/31 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
AngularJS中$injector、$rootScope和$scope的概念和关联关系深入分析
2017/01/19 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
解决layer.confirm快速点击会重复触发事件的问题
2019/09/23 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
Django中间件工作流程及写法实例代码
2018/02/06 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
python3图片文件批量重命名处理
2019/10/31 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Airbnb爱彼迎官网:成为爱彼迎房东,赚取收入
2019/03/14 全球购物
中软国际Java程序员笔试题
2014/07/19 面试题
企业行政文员岗位职责
2013/12/03 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
公司面试感谢信
2014/02/01 职场文书
迎元旦广播稿
2014/02/22 职场文书
高中教师考核方案
2014/05/18 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
2014年小学图书室工作总结
2014/12/09 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA