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事件绑定
???????});
???},
js 清空 input[type=file]的值
原文地址:https://www.cnblogs.com/johnblogs/p/8964156.html