我的功能有问题。我想通过JSON数据进行登录表单验证。我的代码工作正常,但只有在刷新后才输入正确的数据。例如,当我输入错误的登录名/密码时,我收到错误,但在此之后,当我键入正确的登录名/密码时,没有任何反应。
如果你能提供帮助,我将非常感激。这是我的js代码:
//JSON validation
function validation(username, password){
var alert = document.getElementById("invalid-data");
data = JSON.parse(data);
for (var i=0; i < data.length; i++) {
if (username == data[i].login && password == data[i].password) {
window.open("panel.html", "_self");
} else {
alert.style.display = "block";
}
}
}
//Form validation
function getLoginInfo() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
validation(username, password);
}
var button = document.getElementById("login-button");
button.addEventListener("click", getLoginInfo);
答案 0 :(得分:0)
所以,这个功能的问题是那个
data = JSON.parse(data);
在一个函数里面。我做到了全球化,一切正常。
答案 1 :(得分:0)
我希望您的问题是data = JSON.parse(data);
,因为当您第一次获得解析数据时,会再次将其放入data
,这会导致您的下一个data
json解析出现问题。所以我认为如果你将解析后的data
放入不同的变量,如下面的代码,你的问题就会解决:
//JSON validation
function validation(username, password){
var alert = document.getElementById("invalid-data");
var parsed_data = JSON.parse(data);
for (var i=0; i < parsed_data.length; i++) {
if (username == parsed_data[i].login && password == parsed_data[i].password) {
window.open("panel.html", "_self");
} else {
alert.style.display = "block";
}
}
}
//Form validation
function getLoginInfo() {
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
validation(username, password);
}
var button = document.getElementById("login-button");
button.addEventListener("click", getLoginInfo);