Javascript 如何读取JSON数据并将其与变量进行比较

Javascript 如何读取JSON数据并将其与变量进行比较,javascript,html,json,Javascript,Html,Json,我在一个JSON文件中有两组数据,如下所示: Admins = [{"Admin":"jhonmorris"},{"Admin":"clarkechris"}] UIDS = [{"password":"Jhon", "username":"jhonmorris"}, {"password":"Jean", "username":"jeanheadly"}, {"password":"Clarke", "username":"clarkechris"}] 我有一个HTML,用户登录页面如下:

我在一个JSON文件中有两组数据,如下所示:

Admins = [{"Admin":"jhonmorris"},{"Admin":"clarkechris"}]
UIDS = [{"password":"Jhon", "username":"jhonmorris"}, {"password":"Jean", "username":"jeanheadly"}, {"password":"Clarke", "username":"clarkechris"}]
我有一个HTML,用户登录页面如下:

<html>
<head>
<script type="text/javascript" src="data.json" ></script>
<script type="text/javascript" src="checking.js" ></script>
</head>
<body>

<form name="myForm" method="post">
UserName<input type="text" id="uid" value="uid"/>
UserPassword<input type="password" id="pwd" value="pwd"/>
<input type="submit" value="Submit" onclick="fnCheck()"/>
</form>

</body>
</html>

我试着在所有地方发出警报,找出哪里出了问题,但我仍然无法找出哪里出了问题。非常感谢您的帮助

此处未调用您的函数,请不要在单击提交按钮的事件时使用
onsubmit,最好使用表单
onsubmit=“fnCheck()”
onsubmit
事件:


用户名
用户密码

您的表单似乎要提交了。尝试添加一个
返回false
到submit上的表单
onsubmit
,它应该可以工作。我试着用你在那篇帖子上说的内容替换我的
checkUP
函数。但它似乎不起作用。您能为相同的文件创建一个jstfiddle代码并共享链接吗@JustinasPut JSON在一个结构中-->var obj=$.parseJSON(Admins);访问结构值-->obj.admin;要访问数组---->obj.admin[i]请尝试---->alert(obj.admin[1]),查看其中的内容。我想指出显而易见的。。。密码永远不应该以纯文本形式存储,也绝对不应该在浏览器中验证……您提出的解决方案是可行的,但问题是它只适用于列表中的第一组数据。它对后面的任何用户ID都不起作用。有没有关于为什么会发生这种情况的建议@chsdk因为您在if语句中返回
true
false
,所以它将离开函数,请查看我的编辑。尝试了您所说的。现在它会提醒所有的用户ID和密码,在最后一个之后,它会说creds是无效的。在将bool的值设置为true或false之后,我尝试放置一个break语句,但它仍然不起作用@chsdk@TheLuminor很高兴它有帮助。
function fnCheck(){
    alert("in fnCheck()");
    if(checkUP() == true){
        alert("checkUP returned true! UserID and Password are correct");
        if(checkAdmin() == true){
            alert("checkAdmin() returned true! going to admin page now");
            window.location = 'http://www.google.com';
        }
        else if(checkAdmin() == false){
            alert("checkAdmin() returned false! going to userIndex page now");
            window.location = 'http://www.yahoo.com';
        }
    }
    else{
        alert("checkUP() returned false. Creds are Invalid!");
    }
}

function checkAdmin(){
    alert("in checkAdmin()");
    //var adminJSON = JSON.parse(Admins); 
    //length = adminJSON.length;
    x = document.forms["myForm"]["uid"].value;

    for(var key in Admins){
        var admin = Admins[key]
        //alert(""+admin.Admin)

        if(admin.Admin == x){
            alert("Admin match found. Returning true!");
            return true;
        }

        else{
            alert("Admin match not found. Returning false");
            return false;
        }
    }
}

function checkUP(){
    alert("hello!!");
    var x = document.forms["myForm"]["uid"].value;
    var y = document.forms["myForm"]["pwd"].value;
    alert("In checkUP, value of x = "+x+" calue of y = "+y);

    for(var key in UP){
        var user = UP[key]

        //if(user.username == x && user.password == y){
        if(x.match(user.username) && x.match(user.password)){
            alert("user.username = "+user.username+"user.password = "+user.password+" User Id and password matched. Returning true now");
            //alert("Matching "+x+ "with "+user.username"+ and "+y+" with user.password"+ y);
            //break;
            return true;
        }

        else{
            //alert("User ID and password did not match. Returning false now. user.username = "+user.username+" user.password = "+user.password);
            //break;
            return false;
        }
    }
}
<form name="myForm" method="post" onsubmit="fnCheck(event)">