提交时未调用javascript函数
我已经编写了用于验证用户名和密码的简单html javascript代码,但是提交表单时不会调用函数authorize()。有人能帮我找出代码中的错误吗。我知道同样的问题存在,我也跟着他们,但我没能找到我的错误。非常感谢。 下面是我的代码提交时未调用javascript函数,javascript,html,Javascript,Html,我已经编写了用于验证用户名和密码的简单html javascript代码,但是提交表单时不会调用函数authorize()。有人能帮我找出代码中的错误吗。我知道同样的问题存在,我也跟着他们,但我没能找到我的错误。非常感谢。 下面是我的代码 <script type="type/javascript" > var users = {{"Username":"Sunny","Password":"Panzer"},{"Username":"Anjali","Password":
<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>
var users={{“Username”:“Sunny”,“Password”:“Panzer”},{“Username”:“Anjali”,“Password”:“406460”};
函数authorize()
{
var username=document.getElementById(“用户名”).value;
var password=document.getElementById(“密码”).value;
对于(var i=0;i,您应该将JSON数组括在方括号(而不是花括号)中,如下所示:
var用户=[{
“用户名”:“Sunny”,
“密码”:“装甲车”
},
{
“用户名”:“Anjali”,
“密码”:“406460”
}
];
函数authorize(){
var username=document.getElementById(“用户名”).value;
var password=document.getElementById(“密码”).value;
对于(var i=0;i
用户名
密码
我认为您的主要问题是变量用户
应该是一个数组
。您当前的语法对于变量用户
的定义无效,并将抛出一个错误(您可以检查控制台以查看它)。请检查下一个修复示例
var用户=[
{“用户名”:“阳光”,“密码”:“装甲”},
{“用户名”:“Anjali”,“密码”:“406460”}
];
函数authorize()
{
var username=document.getElementById(“用户名”).value;
var password=document.getElementById(“密码”).value;
对于(var i=0;i
用户名
密码
尝试使用事件侦听器
将id属性添加到表单
<form id="myForm" 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>
如果这不起作用,请在输入按钮上尝试
document.querySelector("#login_button")
.addEventListener("click", function(eve) {
eve.preventDefault();
authorize();
}
var users=[{“Username”:“Sunny”,“Password”:“Sunny”},{“Username”:“Anjali”,“Password”:“406460”}];
函数authorize(){
var username=document.getElementById(“用户名”).value;
var password=document.getElementById(“密码”).value;
对于(var i=0;i如果您想使用回调函数提交表单,您需要在
submit按钮并使用event.preventDefault();
防止回调中的页面跳转,这是表单默认操作
<form>
<center>Username <input type="text" id="username"></center><br><br>
<center>Password <input type="text" id="password"></center><br><br>
<center><input type="submit" onclick="authorize(event)" id="login_button" value="Log In"></center>
</form>
<script>
var users = [{"Username":"Sunny","Password":"Panzer"},{"Username":"Anjali","Password":"406460"}];
function authorize(event)
{
event.preventDefault();
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>
用户名
密码
var users=[{“Username”:“Sunny”,“Password”:“Panzer”},{“Username”:“Anjali”,“Password”:“406460”}];
功能授权(事件)
{
event.preventDefault();
var username=document.getElementById(“用户名”).value;
var password=document.getElementById(“密码”).value;
对于(var i=0;i我们这里有两个问题
1-用户可以是一组对象,如:
var users=[{“Username”:“Sunny”,“Password”:“Panzer”},{“Username”:“Anjali”,“Password”:“406460”}]
尝试检查开发人员控制台,您应该会看到var users=所有存储的用户名和密码。你永远不应该在真正面向用户的系统中实现这一点。首先,更改你的代码,因为它不正确,正确的方法是:@rapaelec,它工作得很好。非常感谢,我这么做了,但是,当我在我的浏览器上运行它时,它不会进行验证。而且,作为回答,你的代码和我的代码是一样的r,当我运行你的代码时,它正在运行。我在我的计算机上测试了它,它工作正常。我可以看到警报的内容
document.querySelector("#login_button")
.addEventListener("click", function(eve) {
eve.preventDefault();
authorize();
}
<form>
<center>Username <input type="text" id="username"></center><br><br>
<center>Password <input type="text" id="password"></center><br><br>
<center><input type="submit" onclick="authorize(event)" id="login_button" value="Log In"></center>
</form>
<script>
var users = [{"Username":"Sunny","Password":"Panzer"},{"Username":"Anjali","Password":"406460"}];
function authorize(event)
{
event.preventDefault();
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>