js 不能操作 input[type=file]
但你可以將這個 input 的 dom 元素刪除掉,再新增一個,或者替換掉
$("#UploadFile").replaceWith('<input id="UploadFile" type="file"/>');
如果想在選同一文件上傳時也會觸發change事件
需要在在input的change事件回調中執行
$("#UploadFile").replaceWith('<input id="UploadFile" type="file"/>');
替換即可
但需要在綁定一次 change() 事件;
ChangeBind: function () {
$("#UploadFile").change(function () {
var filePath = $(this).val();
if (filePath.indexOf("docx") != -1 || filePath.indexOf("xlsx") != -1 || filePath.indexOf("pptx") != -1) {
$(".showFileName").val(filePath);
UploadFile();
} else {
$(".showFileName").val("");
alert("您未上傳文件,或者您上傳文件類型有誤!");
return false
}
});
},
UploadFile: function (file) {
var filePath = $("#UploadFile").val();
//正則表達式獲取文件名,不帶后綴.
var name = filePath.replace(/^.+?\\([^\\]+?)(\.[^\.\\]*?)?$/gi, "$1");
//正則表達式獲取后綴
var suffix = filePath.replace(/.+\./, "");
var fileName = name + "." + suffix;
if ($.trim(filePath) == "") {
alert("請選擇需要上傳的文件!");
return;
}
Common.Ajax({ Default: "FileUpload", FilePath: filePath, FileName: fileName }, function () {
}, function (data) {
}, function () {
$("#UploadFile").replaceWith('<input id="UploadFile" type="file"/>'); //Dom元素替換
ChangeBind(); //change事件綁定
});
},