4

我有一个带有文件上传控件的简单表单。单击按钮后,表格将发布upload。我正在尝试jquery-ajax使用jquery.form.js发布帖子。

我的代码如下,

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 10中运行良好。Internet Explorer 9的问题是,在调试后,它没有进入success(). 关于出了什么问题的任何指示?控制台中也没有错误。

我也添加了该error选项,但问题是一样的,断点没有触发警报。

我只是看看网络流量。当我单击上传按钮时,没有 POST 请求(在 Internet Explorer 9 中),但在 Internet Explorer 10 中有一个 POST 请求。

我也清除了缓存并重置了浏览器设置。但问题仍然存在。

4

3 回答 3

1

badZoke,我昨天和今天大部分时间都遇到了同样的问题,终于弄清楚是什么原因造成的(就我而言)。这也可能对您的情况有所帮助:

当表单当前不在 DOM 中时,Internet Explorer 对表单提交有限制。在我的例子中,用户与模式弹出窗口中的按钮进行交互(其中也包含表单)。当他们点击时,表单从 DOM 中移除(但仍可通过 js var 访问)并替换为加载栏。然后我在 IE<10 中调用myForm.ajaxSubmit(options);which 尝试将该表单提交到临时<iframe/>. 除非表单在 DOM 中,否则不允许。

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

于 2013-06-19T22:27:57.397 回答
0

您的代码在我的计算机上运行良好,我使用的是 Internet Explorer 9。也许问题不在这里。

于 2013-05-06T07:30:38.027 回答
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);
于 2013-05-06T06:05:31.783 回答