我是webdevelopment的新手,并尝试过登录功能(单独使用html,css和js),但它还没有工作:/
<li>
<a id="myLink" href="#" onclick="MyFunction();">
<i class="fa fa-user-plus" aria-hidden="true"></i>
Register
</a>
<script>
function MyFunction() {
var username = prompt("Please choose a username");
var password = prompt("Please choose a password");
}
</script>
</li>
<li>
<a id="myPw" href="#" onclick="MyPassword();">
<i class="fa fa-unlock" aria-hidden="true"></i>
Login
</a>
<script>
function MyPassword() {
var verifyuser = prompt("Please enter your username")
var verifypw = prompt("Please enter your password")
if (verifyuser === username && verifypw === password) {
alert("You have been logged in!")
}
}
</script>
所以基本上当我点击&#34;注册&#34;正在提示访问者选择用户名和密码,然后他可以用来登录,如果他点击&#34;登录&#34;
但是,如果我在注册并输入&#34;用户名&#34;后进入java控制台。只是看看var&#34;用户名&#34;记得我得到了
Uncaught ReferenceError: username is not defined(…)
。
然而,当我没有点击&#34;注册&#34;只需在js控制台中手动输入js代码即可。所以我在控制台中键入它(每行一行):
var username = prompt("Please choose a username"); //now I enter a username
var password = prompt("Please choose a password"); //now I enter a pw
username (now it displays what I just entered when I was prompted for username)
password (now it displays what I just entered for password)
关于问题是什么的任何想法?
答案 0 :(得分:2)
Javascript变量的范围限定在他们声明的函数中。因此var password
和var username
写在MyFunction
内,这是唯一的地方在哪里可以访问它们。
您要做的是在全局范围内声明这些变量。要做到这一点,你可以用这样的东西替换你的第一个脚本:
<script>
var username;
var password;
function MyFunction() {
username = prompt("Please choose a username");
password = prompt("Please choose a password");
}
</script>