#javascript #dom #frontend #dom-manipulation
Вопрос:
Я создаю форму, которая запрашивает электронную почту и пароль и проверяет их. Если в нем есть какая-либо ошибка, он появляется в той же строке. Ниже приведен мой код javascript для этого. Когда я заполняю форму и нажимаю «Отправить», значения сбрасываются. Более того, я ничего не вижу в консоли. Я попытался использовать консоль случайного кода.log («Hanee») для тестирования своего кода, но на вкладке консоль ничего не генерируется. Может ли кто-нибудь сказать мне, в чем здесь проблема?
Кроме того, вот ссылка на мою форму входа в систему: http://www2.cs.uregina.ca/~hsb833/215a/login.html
document.getElementById("login-form").addEventListener("submit",validateLogin,false);
function validateLogin(event){
var elements = event.currentTarget;
var emailValue = elements[0].value;
var passValue = elements[1].value;
checkEmail(emailValue);
checkPass(passValue);
}
function checkEmail(emailValue){
var regex_email = /^[/w] @[a-zA-Z] ?.[a-zA-Z]{2,3}$/;
var index = emailValue.search(regex_email);
var errorEmail = document.getElementById("errorEmail");
var valid = true;
console.log('Hanee');
if(index != 0){
errorEmail.style.display = 'inline';
}
}
function checkPass(passValue){
var password = document.getElementById("password");
var regex_pass = /[w] S/;
var index = passValue.search(regex_pass);
if(passValue.length < 6){
console.log('password is invalid. Minimum length is 6');
errorPassLen.style.display = 'inline';
}
if(index != 0){
console.log('password is invalid. Please make sure there is no spaces in between');
errorPassFormat.style.display = 'inline';
}
}
Комментарии:
1. Я вижу
Hanee
в консоли, когда нажимаю «Отправить», но там нет названной функцииcheckPassword
, так как вы назвали ееcheckPass
вместо этого
Ответ №1:
form
обновляется после отправки по умолчанию. Чтобы предотвратить это, используйте event.preventDefault();
в своем validateLogin
Комментарии:
1. Включите
preserve log
свои инструменты разработки и расскажите мне, что вы видите2. эй. как мне это сделать? Не могли бы вы объяснить, пожалуйста?
3. изображение , предотвращает очистку консоли при обновлении/отправке и т. Д. Кстати, я проверил ваш веб-сайт, кажется, все в порядке, и в нем нет
console.log('Hanee')
login.js
4. Да!! сохранение журнала предотвращает очистку консоли. Однако я все еще не получаю никаких сообщений об ошибках 🙁
5. Да. На самом деле я только что удалил console.log(«Хани»).
Ответ №2:
При submit
срабатывании события все значения отправляются на сервер и сбрасываются. Если вы хотите предотвратить это, используйте event.preventDefault();
внутри функцию обработки событий validateLogin(event)
. Тогда значения не будут сброшены!
Тем не менее, если вы хотите, чтобы ваши значения были пустыми после отправки, попробуйте сделать это ниже.
elements.forEach(e => e.value = '');
Комментарии:
1. Я пытался это сделать, но это все равно не сработает.