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 でのみ発生します。バックグラウンドで送信されているものを確認するためにフィドラーを使用し、すべての場合に正しい応答 (フォームと非表示のタグを含む) が返されますが、応答をフォーム innerHTML に設定する何かが jQuery で発生します。
jQuery.form プラグインの条件付きコードを見ていましたが、これは IE とは異なる処理を行いますが、理解できません。
上記のコードの警告値は、IE ブラウザでは -1 で、その他のブラウザでは 0 より大きくなります。