1

ユーザーがフォームを送信しようとしたときにポップアップする確認メッセージを追加したいと思います。私は次のことを思いつきましたが、これは私にはハックのように見えます。

$('#someform').submit(function () {
  var form = $(this);
  //a hack so that this handler does not fire again, see below
  if (form.attr('data-confirm') == 'disabled') {
    return true;
  }

  showConfirmPopup({
    message: "Are you sure?",
    success: function () {

      form.attr('data-confirm', 'disabled');
      form.submit();

      hideConfirmPopup();
    }
  });

  return false;
})

});

したがって、ユーザーがフォームを送信すると、このハンドラーはイベントをキャッチし、ポップアップを表示してフォームの送信を防止します ( を返すことによりfalse)。ユーザーが確認すると、成功ハンドラーはすべてフォーム送信メソッドになり、ハンドラーが再び起動しますが、今回は戻りtrue、フォームが送信されます。

data-confirmこれは、属性を書き込まずに達成できますか?

4

2 に答える 2

0

シンプルで何が問題なのですか:

$('#someform').submit(function () {
  var submitForm = false;
  showConfirmPopup({
    message: "Are you sure?",
    success: function () {
      submitForm = true;
      hideConfirmPopup();
    });
  return submitForm;
});

私はそれshowConfirmPopupが同期していると仮定しています。

于 2013-04-02T09:39:40.300 に答える