Использование диалогового окна 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');
});

person redbluegreen    schedule 10.03.2010    source источник


Ответы (3)


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

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;
});

Поскольку вы просто используете это и сразу же покидаете страницу, нет реальной причины усложнять ее.

person Nick Craver    schedule 10.03.2010
comment
Спасибо. но теперь, после того как я нажал «Подтвердить отправку», он просто снова вызывает $('.allForms').submit(function()) и фактически не отправляет. Или это другая проблема? - person redbluegreen; 11.03.2010
comment
@redbluegreen - Упс, обновил ответ... что currentForm = this; не следовало заворачивать в $() - person Nick Craver; 11.03.2010

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

$(this.form).submit();
person Eric    schedule 28.05.2010

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

$('.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;
});
person Daan    schedule 24.12.2014