jQuery(document).ready(function(jQuery) {
function checkEmail(email){
jQuery.post('someroute.php',
{email:eamil},
function(data){
if(data==error){
return false;
}
);
return true;
}
jQuery('#myform').submit(function(){
// como code and at the momment this
var result true;
//then I check email
var email = ('#myemail').val();
result = checkEmail(email);
return result;
});
问题是这个,checkEmail
函数,首先返回true,然后返回值jQuery.post
函数。为什么呢?
我检查并在提交中,首先返回true,如果您停止提交,则释放该帖子返回值。帖子工作正常,但我不明白为什么函数checkEmail
不等到post返回值并继续直到结束返回true。
答案 0 :(得分:1)
因为jQuery.post()
函数是一个AJAX请求,而AJAX中的第一个A代表异步。这正是异步的,它不会在等待响应时停止代码执行。它会触发请求,然后在发出请求的行之后立即转到任何代码,在这种情况下是return true
语句。
答案 1 :(得分:0)
var value = 1;
var handlerUrl = "someroute.php";
//Do the Ajax Call
jQuery.ajax(
{
url: handlerUrl,
data: { email:eamil },
type: 'POST',
success: function (data)
{
return true;
},
error: function (jxhr, msg, err)
{
return false;
}
});
答案 2 :(得分:0)
@ user1727336:嗨!您可能需要修改代码并添加缺少的}
和});
。这是一个修复:
// enter code here
jQuery(document).ready(function(jQuery) {
function checkEmail(email){
jQuery.post('someroute.php', {email:eamil},
function(data){
if(data==error){
return false;
}
});
return true;
}
});