我正在尝试构建做非常具体的事情并在处理程序上使用它们的小函数。我试图这样做将 JSON 对象发送到 php 脚本,然后以 json 对象的形式返回响应。
这是我到目前为止写的函数:
function isRegistered(courseObj){
var posting = $.post("is-user-registered.php", courseObj);
posting.done(function(data){
var res = $.parseJSON(data);
if(res.response == "success"){
return 0;
} else {
return 1;
}
});
}
这是处理程序:
$('a.button.findDelegate').bind("click", function(){
var textToSearch = $('#findUserBox').val();
var txtObj = {};
var courseObj = {};
courseObj['courseId'] = $('input[name=courseId]').val();
courseObj['email'] = txtObj['text'] = textToSearch;
if(txtObj['text'].length > 2){
if(isRegistered(courseObj) === 0){
console.log("search user and then add it to the list");
} else {
console.log("this user is already registered lets throw an error");
}
}
return false;
});
问题是isRegistered
总是返回未定义。我几乎可以肯定这与 .done 没有立即执行有关,因为undefined
实际上是在 ajax 调用之前记录了 chrome 上的。
如果是这种情况,我该如何强制处理程序等待isRegistered
响应?
我对所有建议持开放态度,我可能使用了错误的工具(jQuery)来做到这一点?
对不起,缺乏明确性。