我需要在我的对象中创建一个新用户和密码



我需要在我的对象中创建一个新的用户名和密码,当我在我的文本输入中输入它时,我需要检查它,如果它们等于我的数组对象中的用户名和密码,所以消息是你在,如果不相等,你需要显示消息密码或用户名相同,请使用其他用户名。

当你创建一个新的密码和用户名时,我需要把它添加到数组中,之后我需要输入它,如果它相等,所以我登录了,但我不能让它好,我几乎在想它是如何工作的,为什么当我点击按钮时,该功能不起作用,但在控制台中我没有看到错误。

window.onload = function(){
document.getElementById("myButton").addEventListener("click", sys.addUser());
var newUser = myUser.value;
var newPass = myPassword.value;
};
var sys = {
users:[
{username: "alexandr", password:"1334"},
{username: "evgeny", password:"1345"},
],
addUser: function(username, password){
var same = false;
for(var x = 0; x < sys.users.username && sys.users.password; x++){
if( newUser.length == this.users.username.length[x]){
same = true;
if(same == true){
myMessage.innerHTML ="Its a same"; 
}
else if(newPass.length == this.users.password.length[x]){
same = true;
myMessage.innerHTML ="Its a same"; 
}                   
else{
this.users.username.push(newUser);
myMessage.innerHTML = "Ok";
}
}
}
}
};

您可以使用some()方法来检查某个对象是否具有与输入值相同的密码或输入。

var sys = {
users: [{
username: "alexandr",
password: "1334"
}, {
username: "evgeny",
password: "1345"
}],
addUser: function() {
var myUser = document.getElementById('myUser').value
var myPassword = document.getElementById('myPassword').value

// This will check if object with same username and password exists in array
var check = this.users.some(function(e) {
	return e.username == myUser && e.password == myPassword
})

console.log(check ? 'Correct' : 'Wrong username or password.')
}
};
// You need to use bind here so that context of this in your method is that object and not element on which you are calling event listener
document.getElementById("myButton").addEventListener("click", sys.addUser.bind(sys));
<input type="text" id="myUser">
<input type="text" id="myPassword">
<button id="myButton">Check</button>

从逻辑上讲,在检查长度的同时,您必须检查内容。 例如,即使它们不同,苏尼尔也会与叶甫尼匹配。

有这个: newuser == users.username[x] 代替

那里有很多错误,按原样处理您的代码,我把它变成了这个。使用代码差异工具查看所有更改

正如你所说,这是一个学习练习,所以我认为纠正你的代码比向你展示更好的方法来做到这一点更有用。

将来,建议您使用jsfiddle提出一个半工作示例供人们使用。

<html>
<body>
<button type=button id=myButton>click me</button>
<input type="text" id='myUser'/>
<input type="text" id='myPassword'/>
<span type="text" id='myMessage'></span>
<script>

var sys = {
users: [
{ username: "alexandr", password: "1334" },
{ username: "evgeny", password: "1345" },
],
addUser: function (username, password)
{
newUser = document.getElementById("myUser").value;
newPass = document.getElementById("myPassword").value
myMessage = document.getElementById("myMessage")
var same = false;
for (var x = 0; x < sys.users.length; x++)
{
if (newUser.length == sys.users[x].username.length)
{
same = true;
if (same == true)
{
myMessage.innerHTML = "Its a same";
}
else if (newPass.length == sys.users[x].password.length)
{
same = true;
myMessage.innerHTML = "Its a same";
}
}
}
if (!same)
{
sys.users.push({ username: newUser, password: newPass });
alert(sys.users.length);
myMessage.innerHTML = "Ok";
}               
}
};

window.onload = function(){
document.getElementById("myButton").addEventListener("click", sys.addUser);
};
</script>
</body>
</html>

相关内容

最新更新