Форма входа JavaScript не проверяется - PullRequest
0 голосов
/ 27 октября 2018

Добрый вечер,

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

Однако, независимо от того, что напечатано в полях, даже если ничего не присутствует, после нажатия кнопки отправки пользователь перенаправляется на нужную страницу.

Мне нужно разрешить желаемую страницу, только если адрес электронной почты и пароль верны. В противном случае сообщите им, что это неверно.

Вот ссылка на [codepen][1], чтобы вы могли увидеть страницу и скрипт.

https://codepen.io/m0rrisim0/pen/bmzyqj

Любая помощь приветствуется в выяснении, почему скрипт не проверяется.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Вы должны использовать значение атрибута из метода document.getElementById, как в следующем примере: document.getElementById ("UserName"). value

function validate() {
    'use strict';

    var UserName = document.getElementById('UserName').value;
    var email = "adrian@tissue.com";
    var Password = document.getElementById('Password').value;
    var pass = "welcome1";

    if ((UserName == email) && (Password == pass)) {
        return true;
    } else {
        alert("UserName and/or Password Do Not Match");
        return false;
    }
}

Входные данные вашей формы не имеют атрибута id и должны возвращать функцию при отправке события.

<form action="Issues.html" method="post" id="loginform" onsubmit="return validate()">
    UserName:
    <input type="text" name="UserName" id="UserName">
    <br>
    <br>
    Password:
    <input type="password" name="Password" id="Password">
    <hr>
    <input type="submit" value="Submit">
</form>
0 голосов
/ 27 октября 2018

Ваша проблема была getElementById(), эта функция требует аргумента и вызывает ошибку.Из-за этой ошибки строка loginform.onsubmit = validate; не была достигнута, поэтому кнопка отправки отправляет форму без вызова функции проверки.Нет необходимости помещать эту строку в оператор if, но если вы хотите, вы можете немного изменить значение на getElementById без парентезиса, таким образом она оценивается как функция, которая в js верна.Вы можете проверить рабочую версию своего кода здесь:

if (document && document.getElementById) {
    var loginform = document.getElementById('loginform');  
    loginform.onsubmit = validate;
}

https://codepen.io/francispires/pen/mzvYKX Вы можете улучшить эту проверку

...