私はjqueryでフォーム提出をキャッチしています。インターネットエクスプローラで提出するフォームを停止
この送信ハンドラは、Internet Explorerを除くすべてのブラウザで機能し、送信するだけです。
どうすれば修正できますか?
$('#editForm').live('submit', function() {
var data = [];
var finalForm = $(this).serializeArray();
var differences = 0;
for (var i in initialForm) {
if (!objectsAreSame(initialForm[i], finalForm[i])) {
data[differences] = finalForm[i];
differences++;
}
}
console.log('diff: ', differences);
if (differences > 0) {
$.ajax({
url: site_url + 'ajax/contact',
type: 'POST',
data: {
id: finalForm[0].value,
method: 'editContact',
data: JSON.stringify(data)
},
success: function(data) {
console.log(data);
$('#contact' + finalForm[0].value).hide("drop", {direction: 'up'}, 500, function() {
$('#contact' + finalForm[0].value).replaceWith(data);
$('#contact' + finalForm[0].value).show("drop", {direction: 'up'}, 500, function() {
$(document).trigger('close.facebox');
});
});
return false;
}
});
}
return false;
});
そのものハンドラを提出... はストレートオフリターン偽を行うことは何もしませんアップ配線ではないように見えます...
「ライブ」を使用している理由はありますか?私はそれが問題だと思う。必要がない場合は、通常のバインドに置き換えてください。 –
IEにスクリプトエラーはありますか?私はいくつかの問題に遭遇しました.IEは、他のブラウザより構文が少し複雑で、スクリプトを決して実行しないようにし、フォームは正常に動作します。 –
連絡先の横にある編集ボタンをクリックすると、フォームが動的に生成されるため、私はライブを使用しています。 – Hailwood