Использование диалогового окна jquery ui для подтверждения действия по отправке формы

StackOverflow https://stackoverflow.com/questions/2420773

  •  19-09-2019
  •  | 
  •  

Вопрос

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

$("#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');
});
Это было полезно?

Решение

Вы можете сохранить его в такой переменной:

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

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

Другие советы

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

$(this.form).submit();

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

$('.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;
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top