tags:

views:

515

answers:

2

I have multiple forms on a page, for each of them I want the user to confirm before form submission. but when the user confirms to submit, how do I let this dialog know which form the user is sumbitting? Does it take custom parameters? Thanks.

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

You can store it in a variable like this:

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

Since you're just using this and immediately just leaving the page, no real reason to make it any more complicated than that.

Nick Craver
Thanks. but now after I hit 'Confirm submit', it just calls $('.allForms').submit(function()) again and didn't actually submit. Or is this a different problem?
redbluegreen
@redbluegreen - Woops, updated the answer...that `currentForm = this;` shouldn't have been wrapped in `$()`
Nick Craver
A: 

Or how about $(this.form).submit();

Eric