Ich habe ein Array-Objekt und möchte es so, dass ich zusätzliche Benutzernamen und Kennwörter verschiedener Benutzer hinzufügen kann. Wenn der Benutzername oder das Passwort nicht existiert, wird es automatisch erstellt. Ich dachte, mein Array-Objekt würde wie folgt funktionieren: userinfo [0] [ "username"] ist user1, userinfo [1] [ "username"] ist benutzer2 usw. Hier wird die jsfiddle: https://jsfiddle.net/xkxn54bx/Hinzufügen neuer Werte zu Objekten
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<script src="test.js"></script>
<title>Generation X</title>
</head>
<body>
<form method="post">
<label for="username">Username:</label><input type="text" name="user_name" id="username"><br />
<label for="password">Password:</label><input type="password" name="pass-word" id="password">
<input type="submit" id="submitbutton" value="Access">
</form>
</body>
</html>
JS:
var userInfo = [
{ username: "admin", password: "test" }
];
function addUser(username, password) {
userInfo[userInfo.length + 1]["username"] = username;
userInfo[userInfo.length + 1]["password"] = password;
}
$(document).ready(function() {
$('#submitbutton').click(function() {
var username = $('#username').val();
var password = $('#password').val();
for (i = 0; i < userInfo.length; i++) {
if (username == '' || password == '') {
alert("All fields are required!");
}
else if (username == userInfo[i]["username"]) {
if (password == userInfo[i]["password"]) {
alert("Welcome");
}
else {
alert("You have entered an invalid password!");
}
}
else {
addUser(username, password);
alert("Account created!");
}
}
});
});
Dank. Ich erhalte diese Nachricht: TypeError: userInfo [userInfo.length] ist nicht definiert –
können Sie einen beliebigen Wert für userInfo in der Konsole sehen? Wie wäre es mit userInfo.length? – Sean12
Ich habe die Länge in einer Variablen wie folgt definiert: var userLength = userInfo.length; –