Jquery:Ajax函数之后的错误测试

时间:2015-05-31 15:02:56

标签: jquery ajax

同样,我尝试过搜索以防止重复,但我认为这个错误是由于我的Jquery级别不佳。

我的注册表使用以下Jquery: -

$em = $this->getContainer()->get('doctrine')->getManager();

我的问题是底部的错误测试,如果在我的Ajax emailexists函数返回可能的错误之前所有其他测试都通过,则返回false。 (我添加了2个警报,并且可以在emailexists设置hasError true之前看到底部的错误检查测试为false。我只是误解了Ajax的异步性并且做错了吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

你必须考虑你的操作顺序..

提交表单时有5个语句,一个紧接着另一个语句。

在你的$('.requiredField').each(function() {内发送异步的ajax请求,然后继续同步并检查结果(hasError)。在行if(!hasError) {执行之前,不太可能设置这个。

您可以做的是将请求存储在一个数组中,然后用户jquery.when检查hasError一旦完成所有内容,就像这样:

var requests = [];

...

    requests.push($.ajax(...))

...

$.when(requests).then(function () {
    if (!hasError) {
        ...
    }
});