Итак, у меня есть вопрос о Javascript и HTML. Ниже у меня есть мой код, и я не уверен, почему, но всякий раз, когда я пытаюсь запустить его (то есть: нажмите «Отправить»), мой сайт зависает. Я установил его прямо сейчас, чтобы проверить, является ли имя пользователя/пароль EXISTS, но оно еще не должно быть комбинацией из двух. Кто-нибудь может мне помочь?Javascript loops разбивают мой сайт
<!DOCTYPE html>
<html>
<title> Welcome to my website!</title>
<body>
<form action="action_page.php" method = "post">
Username: <input type="text" name="user">
Password: <input type="password" name="pass">
<input type="submit" value="Submit" onclick="myLogin()">
</form>
<script type="text/javascript">
function myLogin(){
var usernames = ["rdoucett", "hovland"];
var passwords = ["Rd200161", "hovland1"];
usernames[5] = "stop";
passwords[5] = "stop";
var a = false;
var b = false;
var i = 1;
while(a===false) {
if(usernames[i] != form.user.value) {
i++;
}else if(usernames[i] == form.user.value){
a=true;
}else if(usernames[i] == "stop"){
alert("Incorrect username or password!");
a=true;
};
};
i = 1;
while(b===false) {
if(passwords[i] != form.pass.value) {
i++;
}else if(passwords[i] == form.pass.value){
b=true;
}else if(passwords[i] == "stop"){
alert("Incorrect username or password!");
b=true;
};
};
if(b&&a===true){
alert("Welcome " + document.getElementsByName("user") + "!");
}else{
alert("I do not recognize you " + document.getElementsByName("pass") + "!");
};
};
</script>
</body>
заменить if (b && a == true) с if (b == true && a == true) – cssGEEK
Вы пытались вставить точку прерывания и выполнить код? – bhspencer
Это кажется ужасно длинным и неэффективным способом делать что-то. См. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf – j08691