开发者

jQuery load() before form submit

开发者 https://www.devze.com 2023-02-25 01:13 出处:网络
On my form submit, I\'m trying to use load() to run a PHP script, add data to my database, then submit the form on completion. However, if the form submits true, the data isn\'t added to my database,

On my form submit, I'm trying to use load() to run a PHP script, add data to my database, then submit the form on completion. However, if the form submits true, the data isn't added to my database, but if it returns false, it is. Here's basically what I'm looking at:

if(//form not empty){
    $j('#allset').load(url, function(){
        return true;
    });
} else {
    return false;
开发者_如何学C}

I don't know if it matters, but the form I'm trying to submit is a paypal form.

Anyone know what I can do to fix this? Thanks!


Returning true from the callback will have no effect. The event handler will return immediately after it made the Ajax call. It will not wait for the call to finish (Ajax is asynchronous).

You have prevent form submission in any case and then submit the form again, once the Ajax request is completed. Something like this:

(function() {
    var processed = false;

    $(form).submit(function(event){
        if(processed) {            // data sent fo the server?
            processed = false;
            return true;
        }

        event.preventDefault();    // prevent form submission

        if(/* form not empty */) {
            $.get(url, function() { // do you need load?
                processed = true;
                $(form).submit();
            });
        }
    });
}());
0

精彩评论

暂无评论...
验证码 换一张
取 消