私は現在jqueryを使用してフォームの投稿をトラップし、確認用のダイアログを表示しています。ユーザーが「はい」をクリックすると、フォームが送信されます。ユーザーが「いいえ」をクリックすると、ダイアログが閉じます。Jquery trap form submit()
これはすべてうまくいきますが、1つの問題があります。ユーザーが「はい」をクリックすると、同じコードが再びトリガーされ、ダイアログが再度開きます。
$("#myform").submit(function (event) {
if (something) {
var $dialog = $('<div></div>').dialog({
buttons: {
"OK": function() {
$dialog.dialog('close');
$("#myform").submit();
return;
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$dialog.dialog('open');
event.preventDefault();
return false;
} else {
$("#myform").submit();
}
});
私はこれがなぜ起こっているのか理解していますが、それを回避する最善の方法についてはわかりません。私は、フォーム提出の代わりにボタンクリックでモーダルを表示することができることを認識していますが、これはキーボードの入力ボタンを押してフォームを送信するユーザーの問題を回避しません。
非常に興味深い!私はそれの周りにはっきりとした道があるとは思わないが、誰かが私を間違っていると証明できることを願っている!あなたは 'preventDefault()'機能を全く統合しようとしましたか? –