Usando jQuery UI de diálogo para confirmar la acción para el envío del formulario

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

  •  19-09-2019
  •  | 
  •  

Pregunta

Tengo varias formas en una página, para cada uno de ellos que quiero que el usuario confirme antes del envío del formulario. pero cuando el usuario confirma que presente, ¿cómo puedo dejar este diálogo sabe que forman el usuario está sumbitting? Qué se necesita parámetros personalizados? Gracias.

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

Solución

Se pueden almacenar en una variable de esta manera:

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

Dado que sólo estás usando esto e inmediatamente acaba de salir de la página, sin ninguna razón real para que sea más complicado que eso.

Otros consejos

O qué tal

$(this.form).submit();

Sobre la base de Nick Craver su respuesta, se puede escribir de esta manera:

$('.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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top