Email Invalid> Нужен пользователь, чтобы остаться на той же странице - PullRequest
2 голосов
/ 19 января 2020

Я создал веб-форму, которая фиксирует адреса электронной почты пользователей. Я установил условия, которые должны быть выполнены, чтобы пользователь мог отправить свой адрес электронной почты, и я могу успешно возвращать сообщения об ошибках.

Однако, если пользователь вводит ввод недопустимого кода, он по-прежнему направляется на следующий экран после закрытия ошибки.

HTML:

        <form class="watch-films" onsubmit="location.href='thankYou_watch.html'">
            <p class="paid_in_full">Email</p>
            <input class="field2" name="viewerEmail" id="viewerEmail" placeholder="youremail@example.com" required>
            <div>
                <button type="submit" class="button_done" value="submit">Submit</button>
            </div>
        </form>

Javascript:

const watchForm = document.querySelector('.watch-films'); 
const feedback = document.querySelector('.feedback'); 
const viewerEmailPattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/; 


watchForm.addEventListener('submit', e=> {
    e.preventDefault(); 
    //validation
    const viewerEmail = watchForm.viewerEmail.value; 

    if(viewerEmailPattern.test(viewerEmail)){
      return (true)
    } else {
      alert("You have entered an invalid email address!")
      return (false); 
    }

    console.log(watchForm.viewerEmail.value);
});  

Цените любую помощь!

1 Ответ

2 голосов
/ 19 января 2020

У вас есть обработчик события submit, который перенаправляет браузер на страницу благодарности независимо от результата обработки other submit.

onsubmit="location.href='thankYou_watch.html'"

Поскольку он перенаправляет, он останавливает отправку данных, поэтому вы не получите адрес электронной почты.

Полностью избавьтесь от этого.

Пусть серверный процесс, который считывает отправленные данные формы, сгенерирует страницу благодарности.

...