方法:
- 隱藏原本的上傳按鈕,另外做一個按鈕。
- 點擊另外做的按鈕時,觸發原本上傳按鈕的點擊事件。
- 選擇完上傳檔案後,另外顯示選擇檔案的檔名。
用<label></label>標籤,讓另外做的按鈕能觸發原本上傳按鈕的動作。
<input id="xyzFileUp" class="xyzFileUp" type="file" name="ff" style="display:none">
<label for="xyzFileUp" class="xyzFileUpSel">選擇檔案(另外做的按鈕)</label>
<div class="xyzFileUpFileName">
未選擇檔案
</div>
<script>
//顯示選擇的上傳檔案檔名
$(".xyzFileUp").on("change", function () {
var filePath = $(this).val();
var arr = filePath.split('\\');
var fileName = arr[arr.length - 1];
$(".xyzFileUpFileName").html(fileName);
});
</script>
[做法2]
用JS,讓另外做的按鈕能觸發原本上傳按鈕的動作。
<input id="xyzFileUp" class="xyzFileUp" type="file" name="ff" style="display:none">
<div class="xyzFileUpSel">選擇檔案(另外做的按鈕)</div>
<div class="xyzFileUpFileName">
未選擇檔案
</div>
<script>
//觸發原本上傳按鈕
$('.xyzFileUpSel').click(function () {
document.getElementById("xyzFileUp").click();
//$("#xyzFileUp").click();
});
//顯示選擇的上傳檔案檔名
$(".xyzFileUp").on("change", function () {
var filePath = $(this).val();
var arr = filePath.split('\\');
var fileName = arr[arr.length - 1];
$(".xyzFileUpFileName").html(fileName);
});
</script>參考:
css input[type=file] 样式美化,input上传按钮美化
自訂 Input File 檔案上傳按鈕 CSS 最佳解法﹍實作範例@WFU BLOG
html - Styling an input type="file" button - Stack Overflow
在網頁應用程式中使用本地檔案 - Web APIs | MDN::使用click() 方法隱藏檔案輸入元素
HTMLElement.click() - Web APIs | MDN
沒有留言:
張貼留言