$('form').submit(function() {
$.post(url, $(this).serialize(), 'validate');
return .....;
});
function validate(data) {
return data;
}
我需要从提交函数返回 validate() 提供的结果(数据)。我怎么做?如何让提交的返回等到ajax返回结果?
$('form').submit(function() {
$.post(url, $(this).serialize(), 'validate');
return .....;
});
function validate(data) {
return data;
}
我需要从提交函数返回 validate() 提供的结果(数据)。我怎么做?如何让提交的返回等到ajax返回结果?
是的,这个方法看起来很混乱。可能您应该在页面加载期间将变量初始化为 False,并在 validate 函数返回成功数据后将其设置为 true。它可以在这样的条件中设置:
$('form').submit(function(e) {
if (!postflag) {
e.preventDefault();
$.post("foo.php",serialize(),function(data) {
if (validate(data)) {
postflag = true;
}
});
}
if (postflag) {
$(this).submit();
}
});
你不能这样做,因为它是异步的。
你可以这样做:
$('form').submit(function(e) {
var form = this;
e.preventDefault(); //Prevent the form from submitting
$.post(url, $(this).serialize(), function(data){
if( validate( data ) ) {
form.submit(); //Now submit the form. Please note `form` is not a jQuery object the event handler is not triggered.
}
});
});