解决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 相关文章推荐
jquery 获取json数据实现代码
Apr 27 Javascript
js输入框邮箱自动提示功能代码实现
Dec 10 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
Apr 13 Javascript
通过构造函数实例化对象的方法
Jun 28 Javascript
JS库之Highlight.js的用法详解
Sep 13 Javascript
浅谈vue-router 路由传参的方法
Dec 27 Javascript
使用Angular-CLI构建NPM包的方法
Sep 07 Javascript
Vue函数式组件的应用实例详解
Aug 30 Javascript
从0搭建vue-cli4脚手架
Jun 17 Javascript
js实现轮播图效果 纯js实现图片自动切换
Aug 09 Javascript
vue3.0中使用element的完整步骤
Mar 04 Vue.js
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
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
ThinkPHP自动完成中使用函数与回调方法实例
2014/11/29 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Nigma vs Alliance BO5 第二场2.14
2021/03/10 DOTA
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
2015/03/02 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
vue实现循环切换动画
2018/10/17 Javascript
Three.JS实现三维场景
2018/12/30 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
解决Django生产环境无法加载静态文件问题的解决
2019/04/23 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
python怎么调用自己的函数
2020/07/01 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
新郎父亲婚宴答谢词
2014/01/11 职场文书
处级干部反四风个人对照检查材料思想汇报
2014/09/27 职场文书
2014年辅导员工作总结
2014/11/18 职场文书