提交时未调用javascript函数

提交时未调用javascript函数,javascript,html,Javascript,Html,我已经编写了用于验证用户名和密码的简单html javascript代码,但是提交表单时不会调用函数authorize()。有人能帮我找出代码中的错误吗。我知道同样的问题存在,我也跟着他们,但我没能找到我的错误。非常感谢。 下面是我的代码 <script type="type/javascript" > var users = {{"Username":"Sunny","Password":"Panzer"},{"Username":"Anjali","Password":

我已经编写了用于验证用户名和密码的简单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>


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>