解决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 相关文章推荐
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
May 14 Javascript
页面中iframe相互传值传参
Dec 13 Javascript
jquery插件制作 图片走廊 gallery
Aug 17 Javascript
jquery实现智能感知连接外网搜索
May 21 Javascript
js登录弹出层特效
Mar 07 Javascript
Node.js的包详细介绍
Jan 14 Javascript
jQuery实现行文字链接提示效果的方法
Mar 10 Javascript
JavaScript中的call方法和apply方法使用对比
Aug 12 Javascript
JavaScript实现点击按钮字体放大、缩小
Feb 29 Javascript
jQuery获取与设置iframe高度的方法
Aug 01 Javascript
用jquery获取自定义的标签属性的值简单实例
Sep 17 Javascript
js自定义弹框插件的封装
Aug 24 Javascript
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
php防攻击代码升级版
2010/12/29 PHP
php cli 小技巧
2013/06/03 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
详解php伪造Referer请求反盗链资源
2019/01/24 PHP
PHP使用mongoclient简单操作mongodb数据库示例
2019/02/08 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
jQuery 遍历-nextUntil()方法以及prevUntil()方法的使用介绍
2013/04/26 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
全面解析JavaScript的Backbone.js框架中的Router路由
2016/05/05 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
laravel-admin 与 vue 结合使用实例代码详解
2019/06/04 Javascript
js实现树形数据转成扁平数据的方法示例
2020/02/27 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
微信小程序实现自定义底部导航
2020/11/18 Javascript
Python学生信息管理系统修改版
2018/03/13 Python
Python实现常见的回文字符串算法
2018/11/14 Python
python事件驱动event实现详解
2018/11/21 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
美国二手复古奢侈品包包购物网站:LXRandCo
2019/06/18 全球购物
原料仓仓管员岗位职责
2014/07/08 职场文书
2014银行领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
归元寺导游词
2015/02/06 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python
Python+DeOldify实现老照片上色功能
2022/06/21 Python
Django中celery的使用项目实例
2022/07/07 Python