Использование JQuery UI диалог для подтверждения действия для отправки формы - PullRequest
9 голосов
/ 11 марта 2010

У меня есть несколько форм на странице, для каждой из которых я хочу, чтобы пользователь подтвердил перед отправкой формы. но когда пользователь подтверждает отправку, как я могу сообщить этому диалоговому окну, какая форма используется пользователем? Это принимает пользовательские параметры? Спасибо.

$("#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 ]

17 голосов
/ 11 марта 2010

Вы можете сохранить его в переменной следующим образом:

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 голос
/ 24 декабря 2014

Основываясь на ответе Ника Крейвера, вы можете написать это так:

$('.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;
});
1 голос
/ 28 мая 2010

Или как насчет

$(this.form).submit();
...