Еще один вопрос по фильтрам. Как сделть, чтобы при каждом вводе в строку поиска, в соседних фильтрах все снималось?

Главные вкладки

Аватар пользователя VasyOK VasyOK 14 октября 2017 в 5:12

Еще один вопрос по фильтрам, не связанный с предыдущим.

Есть вьюха, в ней 2 раскрытых фильтра. Страница.

название товара - строка ввода
производитель - чекбоксы
тип товара - чекбоксы

Как сделать чтоб, при каждом вводе названия товара, все чекбоксы снимались?

Комментарии

Аватар пользователя VasyOK VasyOK 14 октября 2017 в 7:34

JS принимается. Условие ясно. А событие?

А метод ввода в настройках раскрытого фильтра это не с той области? Спрашиваю а не утверждаю.

Аватар пользователя VasyOK VasyOK 15 октября 2017 в 2:33
$('.search-bar input.form-text').on('change', function(){
      $('.bef-checkboxes input:checked').prop('checked', false);
    });

Если так, то чекбокс визуально выключается, но сброс фильтра не происходит. Какое действие должно быть?

Аватар пользователя sas@drupal.org sas@drupal.org 15 октября 2017 в 8:45

Еслы под сбросом фильтра Вы подразмеваете изменение значений зависимых фильтром и контента, то надо делать .submit для формы с фильтрами.

Аватар пользователя VasyOK VasyOK 15 октября 2017 в 15:54

Алексей, поясните плз.
.submit - это что?

Форма с чебоксами имеет код:
<form action="/test-search" method="get" id="views-exposed-form-termsearch-page-2" accept-charset="UTF-8">

Эту форму можно сабмитить JS-ом?

Аватар пользователя VasyOK VasyOK 15 октября 2017 в 19:54

Если так, то не работает:

$('.input#edit-title').on('change', function(){
      $('.bef-checkboxes input:checked').prop('checked', false);
      $('#views-exposed-form-termsearch-page-2').submit();
    });

Я так понимаю что между снятием галочек и отправкой формы, должен быть сброс этой формы. А можно ли сделать сброс формы на JS?

Аватар пользователя sas@drupal.org sas@drupal.org 16 октября 2017 в 7:25

У better exposed filters есть настройка, отправлять autosubmit на изменение фильтров, просто Вы не поставили галочку в настройках и не сделала после установки значения на элементе .trigger('change

Аватар пользователя VasyOK VasyOK 16 октября 2017 в 8:17

"отправлять autosubmit на изменение фильтров" - галка Автоматическая отправка - включена, это оно?

trigger('change') - поставил, тогда

$('.search-bar input.form-text').on('change', function(){
      $('.bef-checkboxes input:checked').prop('checked', false);    
      $('#views-exposed-form-termsearch-page-1-mefibs-form-search').trigger('change');      
      $('#views-exposed-form-termsearch-page-1-mefibs-form-search').submit();
    });

Чекбоксы снимаются, форма отправляется.
Но в поле ввода текста остается тот текст, который был до изменения. Т.е. форма не подхватывает измение текста.

Может событие по сабмиту формы делать, а не по изменению текста в фильтре?

Аватар пользователя VasyOK VasyOK 16 октября 2017 в 12:36

Думаю мне знаний не хватает. Буду теорию штудировать.
Насколько вообще возможно на JS менять значение переменных и отправлять форму? Где-то есть теория не эту тему?