关于layui upload上传组件上传文件无反应的问题

这篇具有很好参考价值的文章主要介绍了关于layui upload上传组件上传文件无反应的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近使用layui upload组件时,碰到了上传文件无反应的问题,感到非常困惑。

因为使用layui upload组件不是一次两次了,之前每次都可以,这次使用同样的配方,同样的姿势,为什么就不行了呢?

照例先百度一番,出来的文章都是说第二次上传同样的文件无反应的问题,这个有相应的解决方法。但是我的问题是第一次上传就不行,似乎没有人遇到过这个问题。

苦苦思索一番,依然无果。尝试不断怀疑各种之前已经被验证过的没问题的写法,没有任何效果。就只差怀疑人生了。

虽然搞得我几乎崩溃,但想让我就此放弃,那是不可能的。找出layui upload的源码,通过阅读源码来一步步分析,我的问题是点击按钮可以打开文件选择对话框,选择文件之后就没有任何反应。通过断点调试,发现是change事件没触发,就是这一句

    that.elemFile.on('change', function(){
      $(this).trigger('upload.change');
    });

为什么会不触发呢?这个change事件是绑定在

<input class="layui-upload-file" type="file" accept="" name="file">

这个文件上传组件上面的,其他文章里面提到的二次上传同样的文件无反应也是跟这里有关,因为这个input给value属性赋值为已选择的文件的路径,当第二次上传同样的文件因为路径相同,就不会处理。解决办法就是点击时给这个input的value赋值为空值。但是我这里的value值第一次的时候是空值,所以显然跟这个问题不一样。

不是这个问题那会是什么问题?change事件没绑定成功?什么情况下会导致事件绑定不成功?在源码中发现有这么一行

 // 防止事件重复绑定
    if(options.elem.data('haveEvents')) return;

设置完绑定事件后,

options.elem.data('haveEvents', true);

会给haveEvents赋值,下次就不会再次执行到绑定事件了。

然后我发现在我的代码中初始化的时候因为方法执行回调函数的原因,导致layui.upload.render被执行了两次,结合源代码,我发现我的问题是这样的:

第一次执行layui.upload.render,new了一个upload对象,动态创建<input type="file"/>文件上传组件,事件也是绑定在文件上传组件上面的。

第二次执行layui.upload.render,new了一个新的upload对象,动态创建一个新的<input type="file"/>文件上传组件,但是因为if(options.elem.data('haveEvents')) return;的阻止,事件绑定不上了。

原因找到了,如何解决呢?

其实layui文档里也写了,调用layui.upload.render时,会返回一个实例,我们保存这个实例,下次不要重复去调layui.upload.render就可以了,要调整参数通过实例去调reload方法。文章来源地址https://www.toymoban.com/news/detail-729570.html

到了这里,关于关于layui upload上传组件上传文件无反应的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mac电脑使用谷歌浏览器,el-upload上传文件点击没反应

    在mac电脑中,使用谷歌浏览器,点击el-upload进行web端的文件上传没反应,但是有些时候使用360极速浏览器又可以,所以让我非常的莫名奇妙。 测试一直提大面积的上传功能无法使用,导致内心心力交瘁。但是主要是使用window开发的人员都没遇到过这种问题。issue去找问题,但

    2024年02月04日
    浏览(91)
  • 开发微信小程序使用 uview 的upload组件时,点击无反应问题记录

    使用uniapp+uview开发微信小程序使用 u-upload组件所遇到过的问题记录。待持续完善 ... 原因一:可能是《用户隐私保护指引》未授权导致的。 1:自定义隐私授权组件,在小程序首页引入。 2:到小程序公众平台-设置-基本设置-服务内容声明-用户隐私保护指引,完善好后,等待

    2024年02月04日
    浏览(47)
  • Vue Element upload组件和Iview upload 组件上传文件

    今天要分享的是使用这俩个UI组件库的upload组件分别实现调用组件本身的上传方法实现和后台交互。接下来就是开车的时间,请坐稳扶好~ 一、element upload组件传送门  1、html文件 注意事项: 使用组件本身的上传事件,必须加auto-upload属性设置为false;                 

    2024年02月11日
    浏览(43)
  • 【前端相关】elementui使用el-upload组件实现自定义上传

    elmentui 中的upload默认的提交行为是通过 action 属性中输入的 url 链接,提交到指定的服务器上。但是这种url提交文件的方式,在实际的项目环境中往往是不可取的。 我们的服务器会拦截所有的请求,进行权限控制,密钥检查,请求头分析等安全行为控制。写在这里的url无法实

    2024年02月08日
    浏览(57)
  • el-upload 文件上传组件的使用

    element-ui官网 element ui=upload上传组件 Upload 上传文件这个功能是我们在企业实际开发当中使用频率是非常高的这样一个文件上传的功能,,element ui组件组也给我们提供了上传的组件。所有我们一定要熟悉掌握它 使用之前先进行一下element ui的安装和配置 打开终端=输入npm i elem

    2024年02月11日
    浏览(68)
  • Element中Upload组件上传(图片和文件的默认上传以及自定义上传)

    适用于:文件上传接口只要求file二进制文件,无需其他参数。(或者配置data属性用于上传时附带的额外参数)。 该实现方式会在选择完图片后就根据配置好的action的接口上传地址自动上传图片。 重点就是配置好 action属性 ,以及限制类型和大小。 不需要配置action,使用http-r

    2024年01月21日
    浏览(48)
  • Element Ui 之 文件上传组件的使用 Upload

    最近正好学到了Element Ui的文件上传组件,虽然不太难但一个人琢磨还是整了很久 以下是我整理的规范性文件上传组件为例 前端 后端 此处的String dirPath = \\\"D:/files\\\"可以选取你电脑上的指定位置 接上面 如有错误,欢迎指出

    2024年02月13日
    浏览(51)
  • 使用el-upload组件实现递归多文件上传

    一、需求描述:在页面上点击按钮弹出选择电脑文件的界面,可以一次性选择多个文件一起上传到服务器上,并把上传成功的文件展示在页面上。 · 二、 问题阐述:el-upload是支持多文件上传的,但是是同步进行的,你点击上传按钮,选择了多个文件后点击确定,会同时调用

    2023年04月08日
    浏览(37)
  • 【微信小程序】Vant Weapp 组件 uploader文件上传

    wxml中: json中: js中:

    2024年02月16日
    浏览(58)
  • uniApp 封装Upload组件实现图片和视频上传,解决官方api单一上传问题

     uniapp 官方api没有同时上传图片和视频的组件,所以就只能自己做了,在此记录下! 这里之所以循环一个一个上传是因为,我是用于小程序端的,目前uniapp不支持微信小程序以文件列表形式上传, filePath: item, //改为files可实现一次上传多个文件,仅App、H5( 2.6.15+)支持 具体

    2024年02月14日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包