Как правильно организовать обработку большого кол-ва 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 });}); Буду благадарен за любые советы. |
Цитата:
|
В таком случае потеряются фильтры, которые были выбраны на других вкладках +
Была идея показывать, какие фильтры уже отобраны, причем инфо о отобранных фильтрах выводить в порядке их выбора, т.е. инфо о новом фильтре дописывается в конец. PS Как узнавать id, name и отмечен ли фильтр или нет нашел: $(this).prop("checked"), осталось найти как получать значение value |
pashin76,
не понимаю о чём вы пишите Цитата:
|
Цитата:
Затем на вкладке материал выбрали фильтр материал (кожа) Затем выбрали бренд (nike, puma) Затем еще добавили размер (44) Идея в том, чтобы отображать какие фильтры выбраны в порядке их выбора. В итоге должно получиться: 45, кожа, nike, puma, 44 А если проходить только по отмеченным checkbox и формировать массив заново, то потеряются фильтры выбранные на других вкладках, т.к. список возможных фильтров на каждой вкладке формируются рнр динамически и зависит от фильтров выбранных на других вкладках + не сохранится порядок, в котором фильтры выбирались. Цитата:
|
Цитата:
|
Спасибо огромное
|
Часовой пояс GMT +3, время: 09:06. |