2010-03-10 4 views
9

Ich habe mehrere Formulare auf einer Seite, für jede von ihnen möchte ich den Benutzer vor der Formularübermittlung bestätigen. aber wenn der Benutzer bestätigt zu übermitteln, wie lasse ich diesen Dialog wissen, welche Form der Benutzer gewinnt? Nimmt es benutzerdefinierte Parameter? Vielen Dank.Verwenden von jquery UI-Dialog zur Bestätigung der Aktion für die Formularübermittlung

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

Antwort

17

Sie können es speichern in einer Variablen wie folgt aus:

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

Da Sie gerade diese verwenden und sofort nur die Seite verlassen, keinen wirklichen Grund, es nicht mehr als kompliziert zu machen.

+0

Dank. aber jetzt, nachdem ich "Bestätigen einreichen" gedrückt habe, ruft es einfach $ ('. allForms'). submit (function()) erneut auf und übermittelte nicht wirklich. Oder ist das ein anderes Problem? – redbluegreen

+3

@redbluegreen - Woops, aktualisiert die Antwort ... dass 'currentForm = this;' nicht in '$()' eingeschlossen sein sollte –

1

Oder wie wäre es

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

Basierend auf Nick Craver seine Antwort, können Sie es auf diese Weise schreiben:

$('.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; 
}); 
Verwandte Themen