9


5

jquery UIダイアログを使用してフォーム送信のアクションを確認する

ページには複数のフォームがあります。それぞれのフォームについて、フォームを送信する前にユーザーに確認してもらいます。 しかし、ユーザーが送信することを確認したら、このダイアログにユーザーがどのフォームを送信しているのかをどのように知らせることができますか? カスタムパラメータが必要ですか? ありがとう。

$("#dialog-confirm").dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            'Confirm submit': function() {
                document.______???????_____.submit();
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    });
$('.allForms').submit(function(){
      $('#dialog-confirm').dialog('open');
});

3 Answer


17


次のような変数に保存できます。

var currentForm;
$("#dialog-confirm").dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            'Confirm submit': function() {
                currentForm.submit();
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    });
$('.allForms').submit(function(){
      currentForm = this;
      $('#dialog-confirm').dialog('open');
      return false;
});

これを使用しているだけですぐにページを離れるので、それ以上複雑にする理由はありません。


1


またはどうですか?

$(this.form).submit();


0


Nick Craverの答えに基づいて、次のように書くことができます。

$('.allForms').submit(function(){
      currentForm = this;

      $('#dialog-confirm').dialog({
        resizable: false,
        height:140,
        modal: true,
        buttons: {
            'Confirm submit': function() {
                currentForm.submit();
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
      });
      return false;
});