jquery表单插件响应去除了IE中的标签



使用来自插件的jQuery陷入了一个奇怪的问题。我看到的问题只发生在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中。我使用fiddler来检查后台传输的内容,并且在所有情况下都会返回正确的响应(包括表单和隐藏标签),但是jQuery中发生了一些事情,将响应设置为表单innerHTML。

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

对于任何IE浏览器,

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

请注意,这是巫毒教,但对我有用的是在表单标签前面添加一个空的 pre 标签 - 然后 IE 不会再剥离表单标签了......

最新更新