#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")