При вынесении js скрипта в отдельный файл он перестаёт работать

Выношу скрипт в отдельный js файл, в конце html документа (перед закрывающимся тегом body) цепляю его, после чего он перестаёт работать. В чём может быть причина? Теги script из js файла удаляю.

<script src="{% static 'js/one_picture.js' %}"></script>

Вот полный скрипт:

<script>
//Кнопка консультация специалиста
buttonCons = document.getElementById('id10');

buttonCons.addEventListener('click', function() {
    this.style.display = "none";
    document.querySelector(".alert10").innerHTML = 'Свяжитесь с нами по тел, whatsapp, telegramm +79954015457, [email protected]';

})


const my_form = document.getElementById("add-form");



function validation(form){

    function create_error(input, text){
        const parent = input.parentNode;
        parent.classList.add('error');

        const createLabel = document.createElement('label');
        createLabel.textContent=text;
        createLabel.classList.add('create-error');
        parent.append(createLabel);

    };

    function remove_error(input){
        const parent = input.parentNode;

        if (parent.classList.contains('error'))
        {
            parent.querySelector('.create-error').remove();
            parent.classList.remove('error');
        }
    };

    let result="true";

    form.querySelectorAll('input').forEach(element=>{

     remove_error(element);
     if (element.dataset.required=="true")
     {
     if (element.value=="")
        {
        console.log("Ошибка ввода");
        create_error(element, "Поле не заполнено");
        result="false";
        }
     }


     if (element.dataset.lengthMax)
     {
     if (element.value.length>element.dataset.lengthMax)
        {
        console.log("Ошибка длины ввода");
        create_error(element, "Превышено количество введённых символов");
        result="false";
        }
     }

 if (element.dataset.checktext=="true")
     {
       var re = /^[A-ZА-ЯЁ]+$/i;
       var myName =element.value;
       var valid = re.test(myName);
       console.log(valid);
     if (valid!=true && myName!="")
        {
        console.log("Введите буквы");
        create_error(element, "Вы можете вводить только буквы");
        result="false";
        }
     }



     if (element.dataset.checkemail=="true")
     {
       var re = /^[\w-\.]+@[\w-]+\.[a-z]{2,5}$/i;
       var myMail =element.value;
       var valid = re.test(myMail);
       console.log(valid);
      if (myMail=="")
        {
        console.log("Ошибка почта");
        create_error(element, "Поле не заполнено");
        result="false";
        }
     else if (valid!=true)
        {
        console.log("Ошибка почта");
        create_error(element, "Введите корректный e-mail");
        result="false";
        }
     }


    if (element.dataset.checkphone=="true")
     {
    var re = /^[\d\+][\d\(\)\ -]{4,14}\d$/;
    var myPhone = element.value;
    var validphone = re.test(myPhone);
    if (myPhone=="")
        {
        console.log("Ошибка телефон");
        create_error(element, "Поле не заполнено");
        result="false";
        }
    else if (validphone!=true)
        {
        console.log("Ошибка телефон");
        create_error(element, "Введите корректный номер телефона");
        result="false";
        }
     }

    });

    return result;
}

//Очистка формы и подсказок ошибок
buttonClose = document.getElementById('close');

buttonClose.addEventListener('click', function() {

    my_form.querySelectorAll('.clear').forEach(element=>{
      element.value="";
      const parent = element.parentNode;
      if (parent.classList.contains('error'))
        {
            parent.querySelector('.create-error').remove();
            parent.classList.remove('error');
        }
      });

})

//Вернуть поля формы
buttonClose2 = document.getElementById('close2');

buttonClose2.addEventListener('click', function() {

    document.getElementById("add-form").style.display = "block";
    if (document.getElementById("h6"))
       {
       document.getElementById("h6").style.display="none"
       }
    document.getElementById('id3').style.display = "block";
})

my_form.addEventListener("submit", function (e) {

e.preventDefault();
document.getElementById("add-form").style.display = "block";
if (validation(this)=="true")
{
    let out='<div class="py-2" id="id8"><button  type="button" class="rounded-4 button3 mx-auto px-auto py-4 my-0" >Подтвердить отправку данных >>></button></div>'
    console.log("Проверка валидации");
    document.querySelector(".alert7").innerHTML = out;
    document.getElementById("id3").style.display = "none";

    button = document.getElementById('id8');

    button.addEventListener('click', function() {
        this.style.display = "none";
        document.querySelector(".alert7").innerHTML = '<h6 id="h6" class="mx-auto">Спасибо за заказ. Информация о заказе отправлена вам на e-mail. Мы свяжемся с вами в ближайшее время.</h6>';
        const my_form = document.getElementById("add-form");
        document.getElementById("add-form").style.display = "none";


        let name = document.getElementById('name').value;
        let surname = document.getElementById('surname').value;
        let phone = document.getElementById('phone').value;
        let email = document.getElementById('email').value;
        let title_pic = document.getElementById('title').value;
        let author = document.getElementById('author').value;
        let price = document.getElementById('price').value;
        let way_pay = document.getElementById('way_pay').value;
        var csrftoken = $("[name=csrfmiddlewaretoken]").val();

        json_res=JSON.stringify({'name': name, 'surname':  surname, 'phone': phone, 'email': email, 'title_pic':title_pic, 'price':price, 'way_pay': way_pay, 'author': author}),
        //console.log(json_res);

         $.ajax({
                 type:"POST",
                 url: "{% url 'detail5' atrPerson_one.slug_ap main_picture_one.slug_mp %}",
                 headers:{
                 "X-CSRFToken": csrftoken
                 },
                 cache: true,
                 data: json_res,
                 dataType : "json",
                 success: function(response){
                    console.log(response);
                    console.log("Отправлено");
                 },
                 error: function(response){
                    $("#alert").text('Не работает');
                 },
              })


    });
}

})
</script>

Ответы (0 шт):