input[type=file]去掉「未選擇任何文件」及樣式改進
- 2019 年 11 月 13 日
- 筆記

input 標籤的 file 屬性,在沒有選擇文件的情況下,默認顯示一條文字「未選擇任何文件」。

在選擇文件後,該條文字會變成路徑和文件的名稱。

如何去掉其默認的「未選擇任何文件」提示呢?
查閱資料,沒有發現可以直接修改的辦法,但是我們可以通過其他方法,實現自定義提示文字的效果。
我通過 label 標籤綁定 input 標籤,然後隱藏 input ,添加 button 和 span 來自定義提示語:
HTML部分
<label for="fileinp"> <input type="button" id="btn" value="點我上傳"><span id="text">請上傳Word文檔</span> <input type="file" id="fileinp"> </label>
CSS部分:
label{ position: relative; } #fileinp{ position: absolute; left: 0; top: 0; opacity: 0; } #btn{ margin-right: 5px; } #text{ color: red; }
效果如下:

如果要選擇文件後 提示語也跟著改變,可以用 jQuery 修改 span 標籤的內容。
input 發生變化時,span 的內容修改為 input 的 value 值,程式碼如下:
$("#fileinp").change(function () { $("#text").html($("#fileinp").val()); })
效果如圖:

如果感覺按鈕比較丑,可以用CSS稍微調整一下:
#btn{ padding: 5px 10px; background: #00b0f0; color: #FFF; border: none; border-radius: 5px; }
如下圖:
