遇到的问题:上传文件时,第一次选中文件后点击确定,文件被选中,第二次再点击后不选文件,点击取消,上一次被选中的文件消失了,我们要的效果是第二次点击取消时上一次选择的文件依旧存在。
首先取消事件我们是可以监听到的,
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项目记得强制刷新路由。