@vame

Uncaught SyntaxError: missing ) after argument list не могу понять с чем связана это ошибка?

Делаю валидатор на 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);
       let formData = new FormData(form);
       formData.append('image', formImage.files[0]);
       if(error === 0){
           form.classList.add('_sending');
        let response = await fetch('sendmail.php', {
            method:'POST',
            body: formData
        });
            if(response.ok){
                let result = await response.json();
                alert(result.message);
                formPreview.innerHTML = '';
                form.reset();
                form.classList.remove('_sending');

            }else{
                alert('Ошибка');
                form.classList.remove('_sending');

            }
       }else{
           alert('Заполните обязательные поля')
       }

   }
        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{
                        formAddError(input);
                        error++
                        }
                    }
                }
    return 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})+$/.test(input.value);
    }
    const formImage = document.getElementById('formImage');

    const formPreview = document.getElementById('formPreview');
    formImage.addEventListener('change', () => {
       uploadFile(formImage.files[0]);
    });
    function uploadFile(file){

        if(!['image/jpeg', 'image/png'].includes(file.type)){
            alert('Разрешены только изображения');
            formImage.value = '';
            return;
        }
        if(file.size > 2 * 1024 * 1024){
            alert('Файл должен быть менее 2мб');
            return;
        }
        var reader = new FileReader();
        reader.onload = function (e){
            formPreview.innerHTML = `<img src="${e.target.result}" alt="Фото">`;
        };
        reader.onerror = function (e){
            alert('Ошибка');
        };
        reader.readAsDataURL(file);
    }
});
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
FeST1VaL
@FeST1VaL
Тихий
ответы все правильные, но если по существу вы не закрыли
document.addEventListener('DOMContentLoaded', function() {}); <---- тут );


}
    return error;
            }); <-----
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Берешь гугл, или там яндекс, например, пишешь "редактор с подсветкой синтаксиса js".
Не, не так - "лучший редактор с подсветкой синтаксиса js 2023".
Видишь там шторм. Смотришь на цену. Если не нравится пишешь третий раз "лучший бесплатный редактор с подсветкой синтаксиса js 2023".
И все, пргоблема со скобками и кавычками решена.
А если там еще линтер будет - он еще больше косяков подсветит.
А если статический анализатор - ошбиться будет еще сложнее.

Но логические ошибки даже чатгпт пока не готов исправлять.
Ответ написан
Комментировать
гуглишь "check js code validator" или что-то вроде этого, их там тысячи. Открываешь любой, например этот. Вставляешь там свой код и читаешь отчет.
А вообще в консоли обычно указана строка и позиция в ней, где находится ошибка. Правда, иногда указано кривовато, не там где ошибка фактически произошла.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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