1

使用jQuery From Plugin遇到了一个奇怪的问题。我看到的问题只发生在 IE 中。问题是使用 IE 时的 ajax 响应会去除表单标签。

<form id="the-form" method="post" action="url">
    // Fields
    <input type="submit" value="Submit" />
</form>
<input type="hidden" id="_keepDialog" />

和脚本:

$('#the-form input[type="submit"]').click( function (ev) {
    ev.preventDefault();
    $('#the-form').ajaxSubmit({ 
        sucess: function (html) {
            alert(html.indexOf('_keepDialog'));
        }
    });
};

这将在 jQuery 对话框中使用。显示对话框后,使用 $.ajax 从完全相同的 url 加载内容。内容在该电话中恢复正常。但是,当通过 .ajaxSubmit 提交时,作为响应返回的 html 缺少最外层的标签,并且这只发生在 IE 中。我使用提琴手检查在后台传输的内容,并且在所有情况下都会返回正确的响应(包括表单和隐藏标签),但是随后在 jQuery 中发生了一些事情,将响应设置为表单 innerHTML。

我正在查看 jQuery.form 插件中的条件代码,它为 IE 做了一些不同的事情,但无法弄清楚。

对于任何 IE 浏览器,上述代码的警报值将是 -1,对于任何其他浏览器,警报值将大于零。

4

1 回答 1

0

Be advised that this is voodoo, but what worked for me is to add an empty pre tag in front of the form tag - then IE wouldn't strip the form tag anymore...

于 2012-11-13T16:45:53.337 回答