mFilter2 сброс фильтра с типом radio

Существует два фильтра типа radio button

Категории — msoption|category
Производители — ms|vendor:vendors

Категории:
- Категория 1
- Категория 2

Производители
- Производитель 1
- Производитель 2
После открытия каталога вывод которого происходит через mFilter2, по умолчанию оба фильтра выключены.
После выбора категория 1 и производитель 2 фильтры выглядят так:

Категории:
* Категория 1
- Категория 2

Производители
- Производитель 1
* Производитель 2
Как реализовать кнопку которая бы сбросила выбор производителя, что то типа Все производители, и при этом не затронула выбор категории
Такое возможно реализовать?
Алексей
11 октября 2013, 11:33
modx.pro
1
2 515
0

Комментарии: 2

Роман Шестаков
01 июня 2016, 09:57
0
можно узнать, как решили вопрос?
    atripolskyy
    30 августа 2016, 11:58
    0
    могу поделиться решением-костылем ))
    пришлось подредактировать вывод чанка для фильтра производителя и добавить пару строк в js обработчик фильтра.

    [[!mFilter2?
    ......
    &filters=`
     ms|vendor:vendors
    `
     &tplFilter.outer.ms|vendor=`tpl.mFilter2.filter.like_ul`
     &tplFilter.row.ms|vendor=`tpl.mFilter2.filter.radio2`
     ........
    ]]
    tpl.mFilter2.filter.like_ul:
    <fieldset id="mse2_[[+table]][[+delimeter]][[+filter]]">
    	<h4>[[%mse2_filter_[[+table]]_[[+filter]]]]:</h4>
    <ul class="radio-like-ul">
    <li><input id="mse2_ms|vendor_all" class="" type="radio" value="0" name="ms|vendor">
    <label class="" for="mse2_ms|vendor_all">Все</label></li>
    	[[+rows]]
    </ul>
    </fieldset>
    tpl.mFilter2.filter.radio2:
    <li><input type="radio" name="[[+table]][[+delimeter]][[+filter]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]/><label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" class="[[+disabled]]">
    	 [[+title]] </label></li>
    Часть кода из js обработчика фильтра:
    ........
    ,getFilters: function() {
    		var data = {};
    		$.map(this.filters.serializeArray(), function(n, i) {
    			if (data[n['name']]) {
    				data[n['name']] += mse2Config.values_delimeter + n['value'];
    			}
    			else {
    			    if (n['name'] == 'ms|vendor') {
    			        if (n['value'] != 0) {
    			            data[n['name']] = n['value'];
    			        }
    			    } else {
    			        data[n['name']] = n['value'];
    			    }
    			}
    		});
    		return data;
    	}
    .........
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2