在google了眾多方法后,網上有這么幾種方法:
1、替換掉原來的input框
2、remove原來的input框,然后在添加進新的一樣的input框
但是不知道為什么非常不幸的是,怎么弄我都弄不出。。
后來我腦袋突然閃過一個靈感,我在觸發了一次onchange事件后,他沒反應,是不是onchange事件沒有綁定,后來發現我的推測是正確的,然后我就重新給他綁定了一個onchange事件,測試通過!!!
問題解決!!
1 $("#targetFile").change(function(){ 2 var filename = $(this).val(); 3 $("#originalTargetFileName").val(filename); 4 }); 5 6 $("#targetUpload").submit(function(){ 7 $.ajaxFileUpload({ 8 type: "post", 9 url: "${pageContext.request.contextPath}/upload.do", 10 secureuri:false, 11 fileElementId:"targetFile", 12 dataType: "json", 13 success: function(result,status) { 14 if (result.success == "1") { 15 alert("上傳文件成功!"); 16 var filename=getFileNameFromFilePath(result.fileRelativePath); 17 $("#target_upload_info").html("<div>"+"文件:"+filename+" <a href='javascript:void(0)' onclick='deletefile("+"\""+result.fileRelativePath+"\",\"target\")'>刪除</a>"+"<br/></div>"); 18 $("#target_upload_info").css("visibility", "visible"); 19 $("#targetFileRelativePath").val(result.fileRelativePath); 20 } else { 21 $("#target_upload_info").html("文件上傳失敗: " + result.msg); 22 $("#target_upload_info").css({"visibility":"visible", "color":"red"}); 23 } 24 }, 25 complete: function(xmlHttpRequest) { 26 $("#targetFile").replaceWith('<input type="file" id="targetFile" name="upFile" style="display:none;"/>'); 27 $("#targetFile").on("change", function(){ 28 var filename = $(this).val(); 29 $("#originalTargetFileName").val(filename); 30 }); 31 }, 32 error: function(data, status, e) { 33 alert("文件上傳失敗!"); 34 } 35 }); 36 return false; 37 });