解決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