При изменении не срабатывает после отправки формы

я столкнулся со странной проблемой, я не знаю, с чего начать отладку

У меня есть форма на странице php с двумя полями выбора. Первый виден постоянно, второй отображается и заполняется после изменения первого.

  $(document).ready(function() {
  $("#year").on("change",function(){
    //Getting Value
    var selValue = $("#year :selected").val();

    $.ajax({
            url:'/allsites-monthly/'+selValue,
            type: "GET",
            dataType: "json",
            beforeSend: function(){
                $('#loader').css("visibility", "visible");
            },

            success:function(data) {

                $('#month').css("display", "inline");   

                $('select[name = "month"]').empty().append('<option   value = "0"> Chose month</option>');
                $.each(data, function(key, value){
                    $('select[name = "month"]').append('<option value = "'+   value + '">'+ value +'</option>');

                });  
                $('#submit').css("display", "inline");                  
            },
            complete: function() {                    
                $('#loader').css("visibility", "hidden");

            }

        });
   }); 
});

Код работает, но после отправки формы и обновления страницы ничего не происходит, когда я пытаюсь изменить первое поле выбора. Мне нужно вручную обновить страницу, чтобы сработало событие при изменении. В консоли ничего не отображается. После отправки формы я хотел бы иметь возможность выбрать другой год без необходимости вручную обновлять страницу. Есть идеи, где я ошибся? Спасибо за уделенное время!

Вот образец HTML

<form id = "period" class = "form-inline" method = "get" action = "/allsites-monthly/">
                <div class = "form-group" id = "year">
                    <select name = "year" class = "form-control">
                        <option value = "0">Chose year</option>
                        <option value = "2018">2018</option>
                        <option value = "2019">2019</option>                               
                    </select>
                </div><!-- /.form-group -->

                <div class = "form-group" id = "month">                   
                    <select name = "month" class = "form-control">
                        <option value = "0">Chose month</option>

                    </select>
                </div><!-- /.form-group -->

                <button id = "submit" type = "submit" class = "btn btn-primary btn-sm">Submit</button>                
            </form>  

Код работает в первый раз, проблема в том, что когда я не хочу снова менять год, мне приходится вручную обновлять страницу

Как отправить форму с помощью вызова ajax?

Ass3mbler 07.01.2019 00:42

Крайне важно, чтобы вы также показали нам HTML-код. Судя по тому, как вы получаете значение для выбора года, #year не является элементом <select>. Похоже, это родительский контейнер ... это означает, что ваше событие onchange не будет запущено. Вы не можете измениться в этом контексте

Amjo 07.01.2019 01:00

Прочтите stackoverflow.com/a/42805055/1866538 для получения дополнительной информации о том, как отслеживать изменение содержимого dom

Amjo 07.01.2019 01:03

@ Ass3mbler форма отправляется кнопкой отправки.

B Robert 07.01.2019 01:15

@Amjo, теперь вы можете увидеть образец html

B Robert 07.01.2019 01:15

@BRobert после отправки вы заново создаете ту же страницу?

Ass3mbler 07.01.2019 01:16

@ Ass3mbler после отправки моя страница загружается с некоторым контентом, но в форме будет отображаться только 1 поле выбора

B Robert 07.01.2019 01:18

Тогда должна быть какая-то другая проблема на странице, мешающая JS. Трудно судить, не имея страницы и кода все, как предложил @Amjo

Ass3mbler 07.01.2019 01:20

@ Ass3mbler, чем вы, очень для вашего типа, вы дали мне идею, которая решила проблему. При перезагрузке некоторые js не загружались

B Robert 07.01.2019 01:25

@BRobert добро пожаловать, рад, что вы решили проблему, хорошего дня !!

Ass3mbler 07.01.2019 01:26
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
40
0

Другие вопросы по теме