我一直在设计密码来保护我的网页,这是一个实验页面,因为我是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;
}
答案 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中有这样的东西。
希望这有帮助。