2013-05-06 117 views
4

我有一個帶有文件上傳控件的簡單表單。我點擊upload按鈕後,表格將會發布。我正在嘗試使用jquery.form.js來發布jquery-ajax帖子。jquery.form.js在Internet Explorer 9中無法正常工作

我的代碼如下,

var options = { 
    beforeSubmit: function (formData, jqForm, options) { 
     $(".loaderImage").show(); 
     return true; 
    }, 
    success: function (responseText, statusText, xhr, $form) { 
     $("#result").html(responseText); 
    }, 
    error: function(xhr) { alert(xhr.responseText); } 
}; 
$("#AjaxFileUpload").ajaxSubmit(options); 
return false; 

它工作正常,在Google Chrome,Firefox和Internet Explorer 10Internet Explorer 9的問題是,在調試後,它不會進入success()。任何指向哪裏出錯的指針?控制檯中也沒有錯誤。

我加了error選項,但問題是一樣的,斷點不會觸及警報。

我只是看看網絡流量。沒有POST請求去(在Internet Explorer中),當我點擊上傳按鈕,但有一個POST請求要在Internet Explorer中

我清空緩存並重置瀏覽器設置爲好。但問題依然存在。

+0

你的意思是[這個插件](http://malsup.com/jquery/form/)?鑑於有大量的jQuery插件,鏈接總是有幫助的。該鏈接上的API文檔表示,您可以使用與vanilla jQuery ['.ajax()'](http://api.jquery.com/jQuery.ajax/)方法相同的選項,該方法包括'error '函數回調選項。你是否嘗試過設置並查看響應,狀態和錯誤消息(錯誤回調函數的參數)是什麼? – ajp15243 2013-05-06 06:03:32

+0

是的,我正在使用該插件,將更新我的問題與相關鏈接。我已經用'error'部分更新了我的問題 – 2013-05-06 06:09:00

+0

IE開發工具控制檯中的任何錯誤? – Strelok 2013-05-06 06:15:47

回答

0

的第一步是看是否error調用回調函數:

var options = { 
    beforeSubmit: function (formData, jqForm, options) { 
     $(".loaderImage").show(); 
     return true; 
    }, 
    success: function (responseText, statusText, xhr, $form) { 
     $("#result").html(responseText); 
    }, 
    error: function(xhr) { alert(xhr.responseText); } 
}; 

$("#AjaxFileUpload").ajaxSubmit(options); 
+0

我已更新我的問題,請看一看 – 2013-05-06 06:10:48

0

你的代碼是在我的電腦上工作正常,而我使用的是Internet Explorer的也許問題不這裏。

1

badZoke,我昨天和今天的大部分時間都遇到了同樣的問題,並最終找出了導致它的原因(在我的情況下)。這可能對您的情況有所幫助:

當窗體當前不在DOM中時,Internet Explorer對錶單提交有限制。在我的情況下,用戶與模式彈出窗口中的按鈕進行交互(它也包含表單)。當他們點擊時,表單被從DOM中移除(但仍然可以通過js var訪問),並被加載條取代。然後我打電話給myForm.ajaxSubmit(options);,其中IE < 10嘗試將該表格提交給臨時<iframe/>。除非表單在DOM中,否則不允許。

如果你上面的代碼是你的實際場景的簡化,並且你正在做類似於我的事情,這可能是你的問題。祝你好運。

相關問題