Почему $.get выполняется с каждым разом в два раза больше?
есть код
$(document).change('.dateRange', function(event){
event.preventDefault();
let url = $(event.target).data('pjax-options');
let selectId = $(event.target).data('select-id');
var select = $('select[name="SearchCompanyForExpert[dateRange_' + selectId + ']"').val();
url = url + '&selectval=' + select;
$.get(url)
.done(function(data) {
$('.modal-body').html(data);
});
return false;
});
и вёрстка
<select class="form-control dateRange" name="SearchCompanyForExpert[dateRange_7]" data-pjax-options="/cabinet/tasks/expert-date?user_id=1798&company_id=803" data-select-id="7">
<option>1</option>
и.т.д
</select>
<select class="form-control dateRange" name="SearchCompanyForExpert[dateRange_8]" data-pjax-options="/cabinet/tasks/expert-date?user_id=1798&company_id=804" data-select-id="8">
<option>1</option>
и.т.д
</select>
..... и т.д
таких select на странице 20 штук , name у каждого уникальный SearchCompanyForExpert[dateRange_'айдишник']
При изменение какого-нибудь select , первый раз $.get() отправляет один запрос, второй раз $.get() отправляет 2 запроса, 3-й раз 4 запроса , 4-й раз 8 запросов , и.т.д в геометрической прогрессии. Почему это происходит? мне нужно чтобы одно изменение select - один запрос.
если в самом начале сделать console.log(event.target) то выводится по одному селектору. именно который нужен, а $.get() шлёт выше описанным образом.
Как избавиться от подобного поведения?
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Уберите код
$(document).change('.dateRange', function(event){
...
});
из того html-а, который возвращается $.get(url)-ом.