javascript - jQuery 不返回 true 或 false

标签 javascript jquery

所以我这样做:

function loginFunc(userNameOrEmail, passWord){
        var emailOrUserNameV = encodeURIComponent(userNameOrEmail);
        var passWordV = encodeURIComponent(passWord);
        $.getJSON("http://mysite.com/pullData/login.php?callback=?",
              {
                emailOrUserName: emailOrUserNameV,
                passWord: passWordV
              },
              function(recievedData) {
                if(recievedData[0] == 'true'){
                    return true;
                }
                else{
                    return false;
                }

        });

}

然后我这样做:

$('#loginBtnHtml').click(function(){
            var emailVar = $('#email_html').val();
            var pwdVar = $('#password_html').val();
            if(loginFunc(emailVar, pwdVar)){
                alert('good');
            }
            else{
                alert('bad');
            }

        });

如果我使用 alert(recievedData[0]); 运行 loginFunc() ,它工作正常,我如何让它返回 bool 到 $('#loginBtnHtml').click(); ?

当我这样做来排除故障时:

$('#loginBtnHtml').click(function(){
            var emailVar = $('#email_html').val();
            var pwdVar = $('#password_html').val();
            var whatIsBeingReturned = loginFunc(emailVar, pwdVar);
            alert(whatIsBeingReturned);

        });

它发出“未定义”警报...不确定我做错了什么。

最佳答案

您无法从 ajax 返回。除非 ajax 是同步的(不要这样做!),否则您不能依赖于以任何特定顺序执行的代码。 所有需要 ajax 响应的功能都必须位于 ajax 回调中。

function loginFunc(userNameOrEmail, passWord){
    ...
    return $.getJSON("http://mysite.com/pullData/login.php?callback=?",
}

$("#loginBtnHtml").on('click', function () {
   //snip
   loginFunc(emailVar, pwdVar).done(function (whatIsBeingReturned) {
      console.log(whatIsBeingReturned);
   });
});

关于javascript - jQuery 不返回 true 或 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14575361/

相关文章:

javascript - mongodb .toArray 与 .each (阻塞与异步?)

javascript - 如何调用一个asp :Button OnClick event using JavaScript?

memory - IE 内存泄漏和使用 jQuery 进行评估

jquery - Bootstrap 3 工具提示向右移动 - 这是一个错误吗?

javascript - 使用 getJSON 列出嵌套的 JSON 项目

javascript - 在事件类标题颜色更改(添加/删除类)

javascript - 如何发布表中的一行内容,该表是服务器 GET 请求的响应?

jquery - 页面刷新后记住 div 上的切换状态

javascript - 如何检查 null 或未定义的方法?

c# - JSON.parse Html 内容