@Julian1
Учусь на Full stack

Почему js работает только на на строку с вводом «Имя» а на поле «Почта» не работает?

"use strict"

document.addEventListener('DOMContentLoaded', function() {
    const form = document.getElementById("form");
    form.addEventListener("submit", formSend);


    async function formSend(e) {
        e.preventDefault();

        let error = formValidate(form);
    }

    function formValidate(form) {
        let error = 0;
        let formReq = document.querySelectorAll("._req")

        for (let index = 0; index < formReq.length; index++){
            const input = formReq[index];
            formRemoveError(input);

            if(input.classList.contains("_email")){
                if(emailTest(input)){
                    formAddError(input);
                    error++;
                }
            }else if(input.getAttribute("type") === "checkbox" && input.checked === false){
                formAddError(input);
                error++;
            }else{
                if (input.value === ""){
                    formAddError(input);
                    error++;
                }
            }
        }
    }
    function formAddError(input) {
        input.parentElement.classList.add("_error");
        input.classList.add("_error")
    }
    function formRemoveError(input) {
        input.parentElement.classList.remove("_error");
        input.classList.remove("_error");
    }
    function emailTest(input) {
        return !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,8})+$/.teest(input.value);
    }

})

<form action="#" class="form" id="form">
        <p><input type="text" name="name" class="feedback-input _req form_input" placeholder="Имя" id="name"></p>
        <p><input type="email" name="email" class="feedback-input _req _email form_input" placeholder="Почта" id="email"></p>
        <p><textarea name="text" id="comment" placeholder="Ваш отзыв" class="feedback-input"></textarea></p>
        <div class="form_item">
            <div class="form_label">Прикрепить фото</div>
            <div class="file">
                <div class="file_item">
                    <input id="formimage" accept=".jpg, .png, .gif" type="file" name="image" class="file_input">
                    <div class="file_button">Выбрать</div>
                </div>
                <div class="file_preview"></div>
            </div>
            <div class="form_item">
                <div class="checkbox">
                    <input id="formAgreement" checked type="checkbox" name="Agreement" class="checkbox_input _req">
                    <label for="formAgreement" class="checkbox_label">Я даю своё согласие на обработку персональных данных</label>
                </div>
            </div>
        </div>
        <input type="submit" value="Отправить" class="button-submit">
        <div class="ease"></div>
    </form>
6054f2e803468812298545.jpeg
Красным подсвечивается только поле с именем а должно ещё и поле с почтой подсвечиваться
  • Вопрос задан
  • 321 просмотр
Решения вопроса 1
@Snow311
У вас тут опечатка:
function emailTest(input) {
        return !/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,8})+$/.teest(input.value);
    }


Используйте .test(), а не .teest()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы