使用jquery.form.js的ajaxsubmit方法提交時參數file標籤有值報JS錯誤

先把問題描述一下,功能是使用ajax向後臺來提交數據,爲了向用戶進行很好的錯誤提示,後臺中將出現錯誤時的錯誤緣由返回給前端,前端使用jquery.form.js的ajaxsubmit來提交數據,並在success方法中提示"操做成功",在error方法中提示錯誤緣由。整個form提交的數據包括一些簡單的input和一個文件的上傳。前端

前端JSP:java

<input type="file" id="file" name="file" style="width:200" onchange="checkImageFile('file')">

JS提交:jquery

$("#wfAuditForm").ajaxSubmit({  
                    type: 'post',  
                    url: "data/resource/picture/save" ,  
                    success: function(data){  
                        alert( "success");  
                        $( "#wfAuditForm").resetForm();  
                    },  
                    error: function(XmlHttpRequest, textStatus, errorThrown){  
                        alert( "error");  
                    }  
                });

當須要上傳圖片時,即file有值時點擊提交,結果會返回提交成功,即進入success: function(data)方法,但頁面卻報JS錯誤:ajax

而後一直在找問題所在,瀏覽器單步查看JQ源碼,發現當file類型有值時會進入fileUpload方法,而fileUpload是jquery的文件上傳方法,咱們的應用是使用UPC和UPA上傳文件的,估計是fileUpload的版本或者其它問題致使JS錯誤,而後錯誤被捕捉,因而進入了success方法。瀏覽器

解決方法:
1.直接使用$.ajax
2.file控件移出form
3.改jquery源碼,註釋fileUpload入口(不推薦)post

相關文章
相關標籤/搜索