JSFiddle - React, Tailwind, and code Playground
by wllai2001
HTML
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css">
<!--//BootStrap手刻檔案上傳20171206-->
<div class="container choosefile">
<div class="col-sm-10 col-xs-8">
<!--假的FileUpload Start-->
<div class="input-group filepicker">
<div class="input-group-btn">
<div class="btn btn-info">選擇檔案</div>
</div>
<input type="text" class="uploadlist form-control" placeholder="上傳附檔"/>
</div>
<!--假的FileUpload End-->
<!--真的.Net FileUpload Start-->
<input type="file" multiple="multiple" id="ContentPlaceHolder1_BeforePage_UC_ctl00_AttachmentFiles_UC_FileUpload1">
<!--真的FileUpload End-->
</div>
<div class="col-sm-2 col-xs-4">
<!--.Net Button-->
<input type="submit" value="上傳附檔" class="btn btn-info">
</div>
</div>
CSS
.choosefile {
margin-top: 15px;
margin-bottom: 15px;
}
.filepicker {
cursor :pointer;
font-family: 微軟正黑體;
}
/*把愛藏起來*/
input[id$='_FileUpload1'] {
display:none;
}
JavaScript
$(function () {
//如果真的FileUploader選檔有改變,就改寫顯示的內容
var $ul = $("[id$='FileUpload1']").on("change", function () {
var $this = $(this);
var fileliststr = "";
$.each($this[0].files, function (idx) {
if (idx == 0) {
fileliststr = this.name;
} else {
fileliststr = fileliststr + ", " + this.name;
}
});
$fp.val(fileliststr);
});
//如果顯示的內容被點,就觸發選檔動作
var $fp = $(".filepicker input[type='text']").on("click keypress", function () {
$ul.trigger("click");
});
//如果顯示的選檔按鈕被點,就觸發選檔動作
var $fpbtn = $(".filepicker .btn").on("click keypress", function () {
$ul.trigger("click");
});
});