2010-03-10 16 views
9

Tengo múltiples formularios en una página, para cada uno de ellos quiero que el usuario confirme antes de enviar el formulario. pero cuando el usuario confirma que debe enviar, ¿cómo puedo dejar que este cuadro de diálogo sepa qué formulario está repitiendo el usuario? ¿Toma los parámetros personalizados? Gracias.Usando jquery ui diálogo para confirmar la acción para el envío de formulario

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

Respuesta

17

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

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

+0

Gracias. pero ahora, después de presionar 'Confirmar envío', simplemente llama a $ ('. allForms'). submit (función()) nuevamente y en realidad no se envió. ¿O es este un problema diferente? – redbluegreen

+3

@redbluegreen - Woops, actualizó la respuesta ... que 'currentForm = this;' no debería haberse envuelto en '$()' –

1

O qué tal

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

Basado en 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; 
}); 
Cuestiones relacionadas