-2

I am using the code

 function highlight()
{
var field=document.forms["signin"]["username"].value;
if(field.length==0)
return false;
}

I write another function

function check()
{
 if (highlight()==false;)
 {
alert('message');
 }
}

Can i call the function that way in the if region and check whether the function returns false?

4

2 回答 2

1

当然可以。表达式将hightlight()被评估并变成它的返回值,然后继续== false检查。

我看到的主要问题是您return false来自if声明内部,但如果您不进入声明内部,您将永远不会返回任何内容。

一个什么都不返回的函数变成了undefined,这是错误的,它总是会从第二个check函数触发你的警报。

于 2013-04-17T16:49:22.840 回答
0

您的函数返回falseundefined。两者falseundefined等于false,因此检查将始终为真。像这样修复它;

function highlight() {
    var field=document.forms["signin"]["username"].value;
    if(field.length==0)
         return false;
    else
        return true;
}

或者,您可以使用===代替==,因为虽然 是真的undefined == false,但不是真的undefined === false

于 2013-04-17T16:51:19.843 回答