2010-03-10 8 views
9

J'ai plusieurs formulaires sur une page, pour chacun d'entre eux, je veux que l'utilisateur confirme avant la soumission du formulaire. mais lorsque l'utilisateur confirme sa soumission, comment puis-je laisser cette boîte de dialogue connaître la forme de l'utilisateur? Est-ce qu'il prend des paramètres personnalisés? Merci.Utilisation de la boîte de dialogue jquery ui pour confirmer l'action de soumission de formulaire

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

Répondre

17

Vous pouvez stocker dans une variable comme ceci:

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

Puisque vous utilisez juste cela et immédiatement tout quitter la page, aucune raison réelle pour le rendre plus compliqué que cela.

+0

Merci. mais maintenant, après avoir cliqué sur 'Confirm submit', il appelle à nouveau $ ('.allForms'). submit (function()) à nouveau et n'a pas été soumis. Ou est-ce un problème différent? – redbluegreen

+3

@redbluegreen - Woops, a mis à jour la réponse ... que 'currentForm = this;' ne devrait pas avoir été enveloppé dans '$()' –

1

Ou que diriez-vous

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

Basé sur Nick Craver sa réponse, vous pouvez l'écrire de cette façon:

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