Программно выбрать элементы фильтра mfilter2
Всем привет!
Подскажите, пожалуйста. Реализую декоративные кнопки, которые при нажатии выбирают определенные параметры в фильтре mFilter2.
Использую конструкции типа
Подскажите, пожалуйста, что мог не учесть
Фильтр
Подскажите, пожалуйста. Реализую декоративные кнопки, которые при нажатии выбирают определенные параметры в фильтре mFilter2.
Использую конструкции типа
$(selector_of_filter_element).trigger('click');
а также$(selector_of_filter_element).prop('checked',true).change();
В итоге выбор элементов происходит (нужные чекбоксы отмечаются), но реальной фильтрации не происходит. Хотя если после срабатывания логики выбора вручную нажать Применить в блоке с фильтром — вижу нужные результаты. Пробовал после выбора чекбоксов программно сабмитить форму — ничего не происходит и ошибок в консоли нет.Подскажите, пожалуйста, что мог не учесть
Фильтр
[[!mFilter2?
&parents=`8`
&limit=`10`
&includeTVs=`product.desc,product_cabinet,product_equipment_type`
&processTVs=`1`
&element=`msProducts`
&class=`msProduct`
&filters=`
tv|product_cabinet,
tv|product_equipment_type`
&tpl=`tpl.category.item`
&sort=`
ms_product|createdon:asc
,ms|price:asc`
&ajaxMode=`button`
&tplOuter=`tpl.mFilter2.outer.category`
&tplFilter.outer.tv|product_cabinet=`tpl.mFilter2.filter.outer.checklist`
&tplFilter.row.tv|product_cabinet=`tpl.mFilter2.filter.checkbox.item`
&tplFilter.outer.tv|product_equipment_type=`tpl.mFilter2.filter.outer.checklist`
&tplFilter.row.tv|product_equipment_type=`tpl.mFilter2.filter.checkbox.item`
]]
tpl.mFilter2.outer.category<div class="filter__title">
<span>выберите категорию</span>
<svg class="svg svg-filter">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#filter"></use>
</svg>
</div>
<div class="filter__cabinets">
[[pdoResources?
&parents=`40`
&resources=`[[getCategories? &id=`[[*id]]`]]`
&tpl=`tpl.fiter.cabinets`
&includeTVs=`img,img_alt`
]]
</div>
<div class="row msearch2" id="mse2_mfilter">
<form action="[[~[[*id]]]]" method="post" id="mse2_filters">
<div class="filter filter--category">
<!--Тут был блок с выбором кабинетов-->
<div class="filter__form">
<div class="filter__close">
<svg class="svg" viewbox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<path d="M9.23077 9.23077H2.01172e-08V10.7692H9.23077V20H10.7692V10.7692H20V9.23077H10.7692V2.01172e-08H9.23077V9.23077Z" transform="translate(8.14209 -6) rotate(45)"></path>
</svg>
</div>
<ul class="filter__sort">
[[!+filters]]
<li>
<div class="filter__drop">
<input class="btn btn--full-blue" type="submit" value="показать результат">
<div class="sort__info">Найдено <span class="mse2_total">[[!+total:default=`0`]]</span> позиций
</div>
</div>
</li>
</ul>
</div>
</div>
</form>
<div class="sort-box">
<div class="sort__info">Показано <span class="mse2_now">[[!+limit]]</span> позиций (из <span class="mse2_total" id="mse2_total">[[!+total:default=`0`]]</span> )
</div>
<ul class="filter__sort" id="mse2_sort">
<li><span>сортировка:</span></li>
<li>
<a href="#" class="filter__button" data-sort="ms|price" data-dir="[[+mse2_sort:is=`ms|price:desc`:then=`desc`]]" data-default="asc" class="sort filter__button">по цене
<svg class="svg svg-arrow-right">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#arrow-right"></use>
</svg>
</a>
</li>
<li>
<a href="#" class="filter__button" data-sort="ms_product|createdon" data-dir="[[+mse2_sort:is=`ms_product|createdon:desc`:then=`desc`]]" data-default="asc" class="sort filter__button">по новизне
<svg class="svg svg-arrow-right">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#arrow-right"></use>
</svg>
</a>
</li>
</ul>
</div>
<div class="card-list--horizontal" id="mse2_results">
[[!+results]]
</div>
<div class="mse2_pagination">
[[!+page.nav]]
</div>
</div>
Код, принудительно выбирающий элементы фильтра$('input[name=cabinets]').change(function(){//те самые декоративные кнопки
var $this =$(this);
if($this.prop("checked") === true) {
var cabinetId = $this.val();
$('input[name="tv|product_cabinet"]').prop('checked',false).change();
$('input[name="tv|product_cabinet"]').each(function() {
if($(this).val() == cabinetId){
$(this).trigger('click');
$('#mse2_filters').submit();
}
});
}
});