У меня есть два поля с номерами «от» и «до». Я просто хочу, чтобы "от" числа, выбранного переписать "на" номер списка данных, где число больше, чем "из" числа значения. И то же самое программное обеспечение, когда число «до» выбрано, переписать «из списка номеров, где число меньше, чем выбранное значение« до ».
Я создаю три события:
1) Вкл из выбранного события работает только первый раз, остальное время работает некорректно
2) Вкл до элементавыбранное событие та же самая рабочая ссылка только в первый раз, остальная часть времени работает некорректно
3) Вкл. из пункта сброса события для сброса всего списка данных, но работает не корректно: сброс только "в" список данных "из "списка данных просто очищается.
html код:
<select id="formadditional-age_from" class="form-control"
name="FormAdditional[age_from]">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<select id="formadditional-age_to" class="form-control" name="FormAdditional[age_to]">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
код запроса:
const select2Conf = {
allowClear: true,
minimumResultsForSearch: -1,
width: 200
},
age_to_item = $('#formadditional-age_to'),
age_from_item = $('#formadditional-age_from'),
age_option_list = $('option', age_from_item).clone();
age_from_item.select2({
...select2Conf,
placeholder: 'From',
});
age_to_item.select2({
...select2Conf,
placeholder: 'To',
});
age_from_item.on('select2:select', function(e){
let data = e.params.data,
val = age_to_item.val();
age_to_item
.html(age_option_list.filter(o => age_option_list[o].value === '' || parseInt(age_option_list[o].value)>=parseInt(data.id)))
.val(val).trigger('change');
});
age_to_item.on('select2:select', function(e){
let data = e.params.data,
val = age_from_item.val();
age_from_item
.html(age_option_list.filter(o => age_option_list[o].value === '' || parseInt(age_option_list[o].value)<=parseInt(data.id)))
.val(val).trigger('change');
});
age_from_item.on('select2:clearing', function(e){
$(this)
.html(age_option_list)
.val("").trigger('change');
age_to_item
.html(age_option_list)
.val("").trigger('change');
});
https://jsfiddle.net/bemulima/18mkrbe2/21/
Почему мой код работаетuncorrectly