2013-05-06 127 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中,否则不允许。

如果你上面的代码是你的实际场景的简化,并且你正在做类似于我的事情,这可能是你的问题。祝你好运。

相关问题