Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2017, 20:26
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

Как правильно организовать обработку большого кол-ва checkbox?
Планируется всплывающее окно для выбора различных фильтров (неопределенное кол-во checkbox, на разных вкладках), которые нужно обрабатывать.

Думаю делать так:
При изменении checkbox срабатывает обработчик, который проходит по всем checkbox.
- Если checkbox отмечен впервые, то добавляем его значение в массив выбранных фильтров.
- Если checkbox отмечен, но его значение уже есть в массиве, ничего не предпринимаем
- Если checkbox не отмечен, но его значение уже есть в массиве, исключаем значение из массива.

По нажатии кнопки "Применить фильтры" передаем значения из масива в форму и сабмитим ее.

Есть стойкое ощущение, что пытаюсь изобрести колесо, наверняка есть более "красивое" и правильное решение.

Т.к. в JavaScript не силен никак не могу получить id, name и value, выбранных checkbox не зная их id

Самостоятельно дошел до этого:

$("input:checkbox").bind("change", function () {$("input:checkbox").map(function(){

// тут обрабатываем значения фильтров, но $(this).val() всегда равен ON 

});});


Буду благадарен за любые советы.
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2017, 20:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от pashin76
При изменении checkbox срабатывает обработчик, который проходит по всем только выбранным checkbox.
и формирует новый массив
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2017, 20:48
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

В таком случае потеряются фильтры, которые были выбраны на других вкладках +
Была идея показывать, какие фильтры уже отобраны, причем инфо о отобранных фильтрах выводить в порядке их выбора, т.е. инфо о новом фильтре дописывается в конец.

PS Как узнавать id, name и отмечен ли фильтр или нет нашел: $(this).prop("checked"), осталось найти как получать значение value

Последний раз редактировалось pashin76, 06.04.2017 в 20:51.
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2017, 20:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

pashin76,
не понимаю о чём вы пишите
Сообщение от pashin76
осталось найти как получать значение id, name и value
this.id .... this.name ... какое value? если ничего не ставили, то on ...this.value .... this.checked тоже что $(this).prop("checked")
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2017, 21:35
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

Сообщение от рони Посмотреть сообщение
pashin76,
не понимаю о чём вы пишите
Например сначала выбрали фильтр на вкладке размер (45)
Затем на вкладке материал выбрали фильтр материал (кожа)
Затем выбрали бренд (nike, puma)
Затем еще добавили размер (44)
Идея в том, чтобы отображать какие фильтры выбраны в порядке их выбора. В итоге должно получиться: 45, кожа, nike, puma, 44
А если проходить только по отмеченным checkbox и формировать массив заново, то потеряются фильтры выбранные на других вкладках, т.к. список возможных фильтров на каждой вкладке формируются рнр динамически и зависит от фильтров выбранных на других вкладках + не сохранится порядок, в котором фильтры выбирались.


Сообщение от рони Посмотреть сообщение
pashin76,
this.id .... this.name ... какое value? если ничего не ставили, то on ...this.value .... this.checked тоже что $(this).prop("checked")
То что нужно, спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2017, 21:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от pashin76
А если проходить только по отмеченным checkbox и формировать массив заново, то потеряются фильтры выбранные на других вкладках, т.к. список возможных фильтров на каждой вкладке формируются рнр динамически и зависит от фильтров выбранных на других вкладках + не сохранится порядок, в котором фильтры выбирались.
мне это не осилить, всё что мог выше.
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2017, 21:51
Аспирант
Отправить личное сообщение для pashin76 Посмотреть профиль Найти все сообщения от pashin76
 
Регистрация: 03.10.2009
Сообщений: 57

Спасибо огромное
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно настроить очерёдность выполнения функций? Altai Общие вопросы Javascript 8 01.02.2017 19:32
Как правильно организовать togle imedia Элементы интерфейса 1 23.01.2017 09:29
Как убрать у одного checkbox checked и присвоить тому на который кликнула nina_ Элементы интерфейса 4 14.11.2016 13:27
Как правильно прицепить обработку события slowklg Events/DOM/Window 6 15.03.2012 16:20
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20