【发布时间】:2014-08-26 19:44:52
【问题描述】:
如下所示,我从另一个调用一个 javascript 函数,但每次调用 isPassword 时,它都返回为“未定义”,而不是预期的 True 或 False。我在返回值之前打印它们,它们是正确的,但返回 true;还是不行。有什么想法吗?
function isPassword(pass){
var datatosend = {};
datatosend['api'] = 'checkpassword';
datatosend['version'] = 'v1';
datatosend['pass'] = pass;
jsonAPI(datatosend,function()
{
if (typeof(responseVar['success'])=='boolean')
{
var ans = responseVar['success'];
if (ans)
{
//Returns true to changePassword();
return true;
}
else if (!ans)
{
//Returns false to changePassword();
return false;
}
}
});
}
function changePassword(){
//THE BELOW isPassword CALL IS UNDEFINED
if(isPassword(oldPass)){
successStatus.text("Current password not entered correctly");
successStatus.css('color', 'red');
clearTextAfter('changePasswordStatus', 5000);
return false
}
}
如果问题不那么简单,我可以根据要求提供更多代码。
【问题讨论】:
-
您正在使用
responseVar,但它没有在您显示的代码中的任何地方定义。你用了一个叫jsonAPI的东西,这是一个异步方法吗? -
您正在从 changePassword 调用 isPassword - 如果它返回 false - 它只会返回 undefined (因为您的返回在 if 语句的范围内)。在 changePassword 中的 if 语句之后放置一个 return True,或者 return False - 任何适合的。
-
oldPass定义在哪里?
标签: javascript boolean return