同样,我尝试过搜索以防止重复,但我认为这个错误是由于我的Jquery级别不佳。
我的注册表使用以下Jquery: -
$em = $this->getContainer()->get('doctrine')->getManager();
我的问题是底部的错误测试,如果在我的Ajax emailexists函数返回可能的错误之前所有其他测试都通过,则返回false。 (我添加了2个警报,并且可以在emailexists设置hasError true之前看到底部的错误检查测试为false。我只是误解了Ajax的异步性并且做错了吗?
任何帮助将不胜感激。
答案 0 :(得分:0)
你必须考虑你的操作顺序..
提交表单时有5个语句,一个紧接着另一个语句。
在你的$('.requiredField').each(function() {
内发送异步的ajax请求,然后继续同步并检查结果(hasError
)。在行if(!hasError) {
执行之前,不太可能设置这个。
您可以做的是将请求存储在一个数组中,然后用户jquery.when检查hasError
一旦完成所有内容,就像这样:
var requests = [];
...
requests.push($.ajax(...))
...
$.when(requests).then(function () {
if (!hasError) {
...
}
});