Мой ввод в форму сбрасывается, когда я нажимаю «Отправить». Я также попытался использовать console.log (), чтобы проверить, верен ли мой код, но он ничего не показывает в консоли

#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. Я пытался это сделать, но это все равно не сработает.