Usando diálogo jQuery UI para a ação de confirmação de envio do formulário

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

  •  19-09-2019
  •  | 
  •  

Pergunta

Eu tenho vários formulários de uma página, para cada um deles eu quero que o usuário confirme antes de envio do formulário. mas quando os usuário confirma a apresentar, como faço para deixar esse know diálogo que formam o usuário é sumbitting? Leva parâmetros personalizados? Obrigado.

$("#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');
});
Foi útil?

Solução

Você pode armazená-lo em uma variável como este:

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

Uma vez que você está apenas usando este e imediatamente apenas deixar a página, não há razão real para fazer com que seja mais complicado do que isso.

Outras dicas

Ou como sobre

$(this.form).submit();

Com base Nick Craver sua resposta, você pode escrevê-lo desta maneira:

$('.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;
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top