Форма проверки идентификатора электронной почты и пароля с использованием Javascript

#javascript #html #event-handling #dom-events #web-development-server

#javascript #HTML #обработка событий #dom-события #веб-разработка-сервер

Вопрос:

Код

Я не могу понять, что происходит не так с этим кодом? Мне нужно проверить emailid и password для веб-сайта, который я создаю, используя Javascript. Первое предупреждение работает правильно, так же как и предупреждение в else, только если lert не приходит.

 alert("hi")
const loginForm = document.getElementById("logform");
const loginButton = document.getElementById("logbut");
const emailid = loginForm.emailid.value;
const password = loginForm.password.value;

loginButton.addEventListener("click", function() {
   if (emailid === "user@123" amp;amp; password === "user") {
      alert("You have successfully logged in.");

    }else{
     alert("oh");
    }
});
  

Комментарии:

1. Вам необходимо фиксировать значения полей внутри прослушивателя событий. При загрузке страницы в emailid и password заполняются значения по умолчанию. При нажатии кнопки они не заполняются повторно, они имеют только начальное состояние. Либо наблюдайте за изменением значения в полях ввода, либо восстанавливайте состояние формы в событии щелчка.

2. пожалуйста, отправьте код в вопросе, а не изображение кода (для публикации изображения кода требуется больше времени, чем для копирования / вставки кода в вопросе, не уверен, почему так много людей понимают это неправильно)

3. const emailid = loginForm.emailid.value должно быть просто const emailid = loginForm.emailid , а затем внутри вашего прослушивателя событий проверить emailid.value и сделать то же самое для пароля, таким образом, вы проверяете текущее значение, а не начальное

4. Да, это сработало @SaymoinSam Большое вам спасибо. Можете ли вы немного объяснить, что пошло не так? Почему мы не можем использовать значение в start?

5. @KhushiZawar Почему мы не можем использовать значение в start? , ну, потому что, когда вы назначаете, const emailid = loginForm.emailid.value emailid будет сохраняться текущее значение этого элемента, и это зависит от места, в котором вы это пишете, поэтому в вашем случае это была глобальная область, и она будет выполняться в начале, поэтому она будет содержать начальное значениезначение этого ввода, но вместо этого вы должны получать значение каждый раз, когда пользователь взаимодействует с вашим вводом, присваивая const emailid = loginForm.emailid элементу, а затем получать значение каждый раз, когда вы хотите проверить if(emailid.value === "something")