views:

391

answers:

3

I'm trying to use jQuery SimpleModal Confirm to show a Yes/No confirmation when a form is submitted.

I had modified the demo here (last in list), as follows, to catch and block the form submission.

However, this only seems to work with jQuery 1.2.6 a recent upgrade to 1.3.2 stops the form from being submitted if yes is clicked.

I can't however, work out what in my code is now wrong / incompatible. The demo (which is a simple window.href implementation works in both versions).

$(document).ready(function () {

$('input.delete').click(function (e) {
     e.preventDefault();
     var target = $(e.target);
     confirm("Really delete this event?", function () {
         target.click()
     });
    });
 });
+1  A: 

Jon,

The demos are the site are using the latest jQuery, so I don't think it is an issue between the version and SimpleModal.

What about trying:

target.submit();

-Eric

Eric Martin
Same result. Pop-up appears, 'Yes' action doesn't submit anything.
Jon Hadley
+2  A: 

How about something like this? The idea is to catch (and fire!) on the submit event, not the click event.

$(document).ready(function () {
    $('#myForm').submit(function() {
        var f = this;
        confirm("Really delete this event?", function () {
            $(f).submit();
        });
        return false;  // cancel the initial submit event
    });
});

Hope this is of some help. Good luck!

Funka
A: 

Got it working with a combination of Funka and Eric's advice:

$(document).ready(function () {  
$('.deleteconfirm').click(function (e) {
         e.preventDefault();
         confirm("Really delete this event?", function () {
         $('form#deleteform').submit()
         });
     });
 });
Jon Hadley