我們知道 input 標籤的 file 屬性,在沒有選擇檔案的情況下,其後預設顯示一條文字“未選擇任何檔案”。在選擇檔案後,該條文字會變成路徑和檔案的名稱。
現在我遇到一個需求:想要更改“選擇檔案”和“未選擇任何檔案”為英文,那該如何實現呢?
查閱了一些資料,並沒有直接修改的捷徑,只能使用另一個input標籤模擬實現一個自定義效果。附上程式碼如下:
HTML
<label for="uploadFile">
<input type="button" id="btn" value="選擇檔案"><span id="text">未選擇任何檔案</span>
<input type="file" name="upload" id="uploadFile">
</label>
複製程式碼
CSS
label{
position: relative;
}
#btn{
margin-right: 5px;
}
#uploadFile{
position: absolute;
left: 0;
top: 0;
opacity: 0;
}
複製程式碼
js
$( 'body' ).delegate( '#uploadFile', 'change', function( e ){
if ( $(this).val() != '' ) {
var fileName = val.substring( val.lastIndexOf( '\\' ) + 1 );//不獲取全路徑,只獲取檔名稱
$("#text").html(fileName);
}else{
//未選中任何檔案
}
})
複製程式碼
大功告成!!!