表单提交前的jQuery load()

时间:2011-04-16 10:35:40

标签: jquery ajax load

在我的表单提交上,我正在尝试使用load()来运行PHP脚本,将数据添加到我的数据库,然后在完成时提交表单。但是,如果表单提交为true,则数据不会添加到我的数据库中,但如果它返回false,则为。这基本上就是我所看到的:

if(//form not empty){
    $j('#allset').load(url, function(){
        return true;
    });
} else {
    return false;
}

我不知道这是否重要,但我试图提交的表格是一种贝宝形式。

任何人都知道我能做些什么来解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

从回调中返回true将无效。事件处理程序将在进行Ajax调用后立即返回。它不会等待调用完成(Ajax 异步)。

您在任何情况下都阻止表单提交,然后在Ajax请求完成后再次提交表单。像这样:

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