$('#filter-date-from').on('change', function(){
var from = $(this).val();
var to = $('#filter-date-to');
+
to.find('option').each(function(){
var val = $(this).val();
- if (val === '' || val >= from) {
- $(this).show();
+ $(this).toggle(val === '' || !from || val >= from);
+ });
+
+ var cur = to.val();
+ if (from && (!cur || cur < from)) {
+ if (to.find(`option[value="${from}"]`).length) {
+ to.val(from).trigger('change');
} else {
- $(this).hide();
+ var firstVisible = to.find('option').filter(function(){ return $(this).is(':visible') && $(this).val(); }).first().val();
+ if (firstVisible) to.val(firstVisible).trigger('change');
}
- });
- if (to.val() && to.val() < from) {
- to.val(from);
}
});
+
$('.clear-btn').on('click', function(){
var target = $(this).data('target');
$('#' + target).val(null).trigger('change');
const $to = fromSelect.closest('td').find('.to-month');
if (!$to.length) return;
- // покажем только значения >= from (и пустую)
$to.find('option').each(function(){
const val = $(this).val();
$(this).toggle(!val || !from || val >= from);
});
const curTo = $to.val();
- if (from && curTo && curTo < from) {
- $to.val(from);
+ if (from && (!curTo || curTo < from)) {
+ if ($to.find(`option[value="${from}"]`).length) {
+ $to.val(from).trigger('change');
+ } else {
+ const firstVisible = $to.find('option').filter(function(){ return $(this).is(':visible') && $(this).val(); }).first().val();
+ if (firstVisible) $to.val(firstVisible).trigger('change');
+ }
}
}
+
});