2010-03-10 15 views
9

Ho più moduli su una pagina, per ciascuno di essi voglio che l'utente confermi prima dell'invio del modulo. ma quando l'utente conferma di inviare, come faccio a consentire a questa finestra di dialogo di sapere quale forma sta eseguendo l'utente? Ci vogliono parametri personalizzati? Grazie.Utilizzo della finestra di dialogo ui jquery per confermare l'azione per l'invio del modulo

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

risposta

17

È possibile memorizzare in una variabile come questo:

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

Dal momento che si sta solo usando questo e subito appena lasciare la pagina, nessuna vera ragione per renderlo più complicato di così.

+0

Grazie. ma ora dopo aver premuto "Conferma invio", chiama solo $ (". allForms"). submit (function()) di nuovo e non ha effettivamente inviato. O questo è un problema diverso? – redbluegreen

+3

@redbluegreen - Woops, ha aggiornato la risposta ... che 'currentForm = this;' non deve essere stato inserito in '$()' –

1

O come circa

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

Basato su Nick Craver la sua risposta, è possibile scrivere in questo modo:

$('.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; 
}); 
Problemi correlati