【发布时间】:2017-07-15 21:48:35
【问题描述】:
我正在构建一个 Web 应用程序并且需要构建一个登录站点。如何循环遍历此 javascript 对象并将登录表单上的用户输入(目前仅需要电子邮件(“EML”))与数据进行比较,以确保输入正确?我试图做点什么,但只是想出了下面的 for 循环,这只是一团糟。 (对象在一个单独的 js 文件中) 谢谢!
function validate() {
var un = document.login.username.value;
var pw = document.login.password.value;
var valid = false;
for (var key in responseData) {
if (responseData.hasOwnProperty(key)) {
for (var i = 0; i < key.length; i++) {
if (un == key[i]) {
valid = true;
break;
}
}
}
if (valid) {
alert("Login was successful. Welcome, " + un + ".")
window.location = "https://www.google.com";
return false;
}
}
var responseData = {
authenticatUser: {
"ERR":0,
"RSP":{
"AUTHC":"true",
"USR":{
"ID":"2",
"TJT":"FULL",
"ACTV":"true",
"BO":"1489760664786",
"CONT":{
"FNM":"John",
"LNM":"Doe",
"PHN":"5556667777",
"PHNTP":"NONE",
"EML":"ex@mple.com",
"EMLTP":"NONE"
},
"ADMIN":"false",
"LLOGN":"1489760664786",
"ACCT":{
"ID":"2",
"TJT":"ID"
}
}
}
},
getUserAccountDetails: {
"ERR":0,
"RSP":{
"ACCT":{
"ID":"2",
"TJT":"FULL",
"ACTV":"true",
"BO":"1489760664786",
"LU":"1489760664786",
"NM":"Name",
"DESC":"Description",
"CONT":{
"FNM":"John",
"LNM":"Doe",
"PHN":"5556667777",
"PHNTP":"NONE",
"EML":"ex@mple.com",
"EMLTP":"NONE"
},
"ADDRM":{
"STRT":"1 Miracle Way",
"CITY":"San Antonio",
"STATE":"Texas",
"ZIP":"78245"
},
"ADDRB":{
"STRT":"1 Miracle Way",
"CITY":"San Antonio",
"STATE":"Texas",
"ZIP":"78245"
},
"TZ":"US_CT",
"LICS":"1",
"REPOS":[
{
"ID":"2",
"TJT":"ID"
},
{
}
],
"USRS":[
{
"ID":"2",
"TJT":"ID"
},
{
}
]
}
}
}
};
【问题讨论】:
-
如果你问如何访问 js 对象内的嵌套属性,你会找到答案right here。还必须警告您,以纯 JSON 格式存储和访问用户信息并不是创建登录页面的一种非常安全的方法。
标签: javascript arrays json loops object