2016-01-07 4 views
1

У меня очень мало опыта работы с JavaScript и не могу понять, как заставить его работать, это может быть очень маленькое исправление, или это может быть что-то важное. У меня нет абсолютно никакой подсказки ...JavaScript простой логин из массива

Я пытаюсь просто создать очень простой логин для моего назначения, безопасность не является проблемой, поскольку в краткой информации это не требуется. Случай нажатия пользователем кнопки отправки должен либо предоставить, либо запретить вход пользователя на сайт. Я прокомментировал весь код, поэтому, надеюсь, это будет непростая задача определить, что происходит неправильно.

Возможно, это «&», включенный в оператор IF, я не был уверен, будет ли он работать на JavaScript или нет. Или это может быть вызов пользователей, поскольку я не уверен, что я сделал это право; т.е. передать = пароль (от формы)

JavaScript:

<script> 
    function loadpage() { 
    var user = username; //assigns user input to variable 
    var pass = password; //^^ 
    var storedus = ["Jordan", "Marzia", "Ryan"]; //array of acceptable usernames 
    var storedps = ["123", "cat", "seven"]; //array of acceptable passwords 

    if (user = storedus & pass = storedps) //condition must include both an acceptable username and password to >> 
    { 
     window.location.href = "home.html"; // >> proceed to next the portal page(home.html) 
    } 
    else 
    { 
     window.alert("An invalid username or password was entered."); //if the users input was not acceptable then display a popup informing them so. 
    } 
} 

</script> 

HTML таблицы и формы:

 <table style="position: absolute; left: 35%; top: 20%;"> <!- table to layout the form to take the users username and password to allow them to 
     gain entry into the site-!> 
     <form> 
     <tr><td><h2>Sign in</h2></td></tr> 
     <tr><td>Username*: </td><td><input type="username*" name="username" required></td></tr> 
     <tr><td>Password*: </td><td><input type="password*" name="password" required></td></tr> 
     <tr><td><input type="submit" name="signin" onclick="loadpage()"</td></tr> 
     </form> 
    </table> 

Заранее спасибо за вашу помощь!

+2

Использование '' == или '' === для сравнения, и '' && в качестве логического оператора 'AND'. Я читал об этом первым. Вам, вероятно, понадобится 'array.indexOf', чтобы найти элемент массивов. –

+1

вам лучше использовать карту, 'var db = {Jordan: '123', Marzia: 'cat', Ryan: 'seven'}' и условие проверки 'if (db [user] && db [user] = = pass) {... ' – mido

+0

Не уверен, что это преднамеренно, но похоже, что вы путаетесь о том, как получить доступ к элементам HTML на своей веб-странице в вашем скрипте JavaScript. Например, если у вас есть «var user = username;», имя пользователя всегда будет неопределенным, если вы не определите его раньше, где-то еще в вашем скрипте (чего я не вижу). Я бы предложил немного прочитать JavaScript и DOM (http://www.w3schools.com/js/js_htmldom_methods.asp) – AnthonyDJ

ответ

2

Вы пытаетесь сравнить массив с тем, что, как я полагаю, является строкой. Вместо этого вы должны пройти через массив и сравнить значения с именем пользователя и паролем.

var usernames = [ 
    'Script47', 
    'SomeUsernname' 
]; 

var passwords = [ 
    'somePassword', 
    'password' 
]; 

var username = 'Script47'; 

var password = 'somePassword' 

for (var i = 0; i < usernames.length; i++) { 
    if (username == usernames[i] && password == passwords[i]) { 
    alert('Successful!'); 
    break; 
    } else { 
    alert('Failed!') 
    } 
} 

Обратите внимание, как я использую &&.

Пример

JSFiddle

Смежные вопросы