密码无效帮助

时间:2016-06-26 21:58:19

标签: javascript passwords

我一直在设计密码来保护我的网页,这是一个实验页面,因为我是html,css和java的新手。

以下是密码的代码。有人能帮我吗?密码似乎将输入所提供空间的任何内容都计为true。我只需要一个密码就可以工作,但我不知道如何去做。以下是密码的代码,任何帮助将不胜感激

 <script>
    function checkPassword(){
    var password = document.getElementById("PasswordBox");
    var passwordText = password.value;
    if(passwordText == "pheasey101"){
    return true;

    alert("access denied! Incorrect password!!");
    return false;
    }

2 个答案:

答案 0 :(得分:0)

如果没有所有相关代码,那将很难说,但我怀疑你遇到了JavaScript的真实/虚假价值。正如前面所指出的那样,缺少一个右大括号意味着你的功能可能没有按你认为的那样做。与此同时,一切都返回真实的事实意味着你可能在其他地方得到了这个:

if (checkPassword){
    //the thing that always happens
}

......或者这个:

if (checkPassword()){
    //the thing that always happens
}

当您使用上述隐式相等时,JavaScript使用类型强制来评估true / false。由于您的函数'checkPassword'似乎没有返回默认值,因此JavaScript将检查它是否作为引用存在于内存中,然后将其评估为true。

if (checkPassword() == true){
    //a better sort of check, but it also uses type coercion
    //if checkPassword returns the string "true", this will pass
}

if (checkPassword() === true){
    //an even better check; no type coercion occurs
}

修复您的函数,使其始终返回一个值,然后使用严格相等来评估该结果。

答案 1 :(得分:-1)

我不太确定javascript但是在java中比较两个字符串时,你必须使用.Equals()而不是==,例如,在java中你的代码应该是:

if(passwordText.Equals("pheasey101")) {
    return true;
}

我注意到你遇到的另一个问题是你错过了一个大括号,在你打开花括号的if语句之后但你永远不会关闭它,保留警报部分并在if语句中返回false部分。这也意味着该功能没有确定的结束。在返回true之后,添加结束大括号,看看是否修复了它,否则尝试使用.Equals,如果在javascript中有这样的东西。

希望这有帮助。

相关问题