我已经编写了用于验证用户名和密码的简单 html javascript 代码,但是提交表单时未调用函数 authorize()。谁能帮我找出代码中的错误。我知道存在同样的问题,我确实关注了他们,但我找不到我的错误。谢谢。 下面是我的代码
<script type="type/javascript" >
var users = {{"Username":"Sunny","Password":"Panzer"},{"Username":"Anjali","Password":"406460"}};
function authorize()
{
var username= document.getElementById("username").value;
var password = document.getElementById("password").value;
for(var i=0;i<users.length;i++)
{
if(users[i].Username==username && users[i].Password==password)
{
return true;
}
}
alert("invalid username or password");
return false;
}
</script>
<form action="enter_details.html" onsubmit="return authorize()" >
<center>Username <input type="text" id="username"></center><br><br>
<center>Password <input type="text" id="password"></center><br><br>
<center><input type="submit" id="login_button" value="Log In"></center>
</form>
最佳答案
您应该将 JSON 数组括在方括号(而不是大括号)中,如下所示:
var users = [{
"Username": "Sunny",
"Password": "Panzer"
},
{
"Username": "Anjali",
"Password": "406460"
}
];
function authorize() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
for (var i = 0; i < users.length; i++) {
if (users[i].Username == username && users[i].Password == password) {
return true;
}
}
alert("invalid username or password");
return false;
}
<form action="enter_details.html" onsubmit="return authorize()">
<center>Username <input type="text" id="username"></center><br><br>
<center>Password <input type="text" id="password"></center><br><br>
<center><input type="submit" id="login_button" value="Log In"></center>
</form>
关于提交时未调用javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55780464/