如何解决基本登录屏幕循环中的逻辑问题

时间:2019-02-11 22:32:33

标签: javascript html ajax logic

当有人输入错误的用户名或密码时,我得到了告诉我的代码。我可以让人们在输入第一个用户名和密码时输入

InStr([start, ]string1, string2[, compare]) user1

但是,如果他们尝试pass1user2,则表示输入的密码错误。我知道这是循环中的逻辑错误,但是,我一生都无法解决!请帮助我了解你们是否可以!

谢谢

pass2

我也需要它来接受Array的其他部分。例如,当有人放入<!DOCTYPE html> <html lang="en"> <head> <title>Assignment 1</title> <link rel="stylesheet" type="text/css" href="css/login.css"> </head> <body> <script> document.body.style.backgroundColor = "grey"; var valid = false; function validate() { var useArray = ["user1", "user2", "user3"]; var passArray = ["pass1", "pass2", "pass3"]; var x = document.login.userId.value; var y = document.login.passWord.value; for(var i = 0; i < useArray.length; i++) { if (x == useArray[i] && y == passArray[i]) { document.write("You have successfully logged on to your class!"); return false; } else if (i = useArray.length - 1) { document.write("Error: User Id is not valid, please click the link below again \n \n"); var l =(" link back"); var back = l.link("practice.html"); document.write(back); return false; } } } </script> <div class="container"> <h1>Logon</h1> <form name="login"> <label for="useId">Userid: </label> <input type="text" name="userId" required> <br><br> <label for="passWord">Password: </label> <input type="password" name="passWord" required> <br><br> <input type="button" class="submit" value="Log In" name="submit" onclick="validate(this.form)"> </form> </div> <br><br> </body> </html> usee2

谢谢

1 个答案:

答案 0 :(得分:0)

您在这里遇到麻烦else if (i = useArray.length - 1) useArray.length在所有循环中都将为3,因此userArray.length - 1将始终等于2,您需要在i = 2内设置if 在JS中,赋值运算符还返回赋值,所以您基本上是在写 else if( 2 )的总和将为true