解决input为file类型的文本无法赋值问题


遇到的问题:上传文件时,第一次选中文件后点击确定,文件被选中,第二次再点击后不选文件,点击取消,上一次被选中的文件消失了,我们要的效果是第二次点击取消时上一次选择的文件依旧存在。

   首先取消事件我们是可以监听到的, 

  if(!document.getElementById("file1").files[0]){
  //此时未选择文件点击了取消事件
  }
  file选择文件后,获取到的值是:document.getElementById("file1").files[0]上传到文件用户所选择的文件都存储在了一个FileList对象上,其中每个文件都对应了一个File对象

    file对象一共由9个属性

    获取上次修改的时间file[0].lastModifiedDate)

    获取文件名file[0].name

    获取大小file[0].size

    获取类型file[0].type

  

 所以在没有选择文件时,没有办法强制给document.getElementById("file1").files[0]赋值 。

解决办法:新定义一个变量,将第一次所选择的文件的file[0].name存储起来,显示在页面。当不选择文件点击取消时不做处理,当重新选择文件时,重新给变量赋值就好。

if(!document.getElementById("file1").files[0]){
return;
}else{
this.newAdvertisement.file1 = String(document.getElementById("file1").files[0].name);
document.getElementById("file1").style.opacity = 0 ;
this.firstUpMusic = document.getElementById("file1").files[0];
}
this.$forceUpdate();
如果vue项目记得强制刷新路由。

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM