次のコードがあります。
$(".foo-form").submit(function (event) {
event.stopPropagation();
event.preventDefault();
$.ajax({
url: this.action,
data: $(this).serializeArray(),
type: 'POST',
dataType: 'json',
success: function (data, msg, resp) {
var $form = $("#second-form");
$form.show().dialog({
resizable: false,
height:400,
width: 600,
modal: true,
title: "Recommendation added",
buttons: [
{
text: "OK",
click: doOK
},
{
text: "Cancel",
click: doCancel
}
]
});
}
})
return false;
});
ページを下にスクロールしてフォームを送信すると、ダイアログ ボックスが表示されたときにページが一番上にスクロールされます。これをオーバーライドする方法はありますか?
解決にならないこと
.ui-dialog
クラスの配置を修正します。変更されていません (Google の CDN を使用)- イベントをキャンセルしない - ご覧のとおり
stopPropagation
、 、preventDefault
、およびfalse を呼び出します。したがって、イベントが進行しているわけではありません (たとえ進行中だったとしても、ページの上部へのハッシュ リンクではありません)。
jQuery 1.72 および jQuery UI 1.8.21 (それぞれの最新バージョン) を使用します。