在我的表单提交上,我正在尝试使用load()来运行PHP脚本,将数据添加到我的数据库,然后在完成时提交表单。但是,如果表单提交为true,则数据不会添加到我的数据库中,但如果它返回false,则为。这基本上就是我所看到的:
if(//form not empty){
$j('#allset').load(url, function(){
return true;
});
} else {
return false;
}
我不知道这是否重要,但我试图提交的表格是一种贝宝形式。
任何人都知道我能做些什么来解决这个问题?谢谢!
答案 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();
});
}
});
}());