Перейти к содержимому


Фотография
- - - - -

Paзрядность Чисел В Фильтре По Диапазону

фильтр разрядность разделитель

В теме одно сообщение

#1 al2401

al2401

Отправлено 08 October 2018 - 11:16

Добрый день, как в фильтре по диапазону (не слайдер) добавить разрядность, на форуме нашел примеры только для слайдера

 

Если отформатировать с помощью JS например 1000000 => 1 000 000 фильтр соответственно не срабатывает, в JBZoo нужно добавить код для удаления пробелов, перед обработкой условий поиска, подскажите где искать,

или может есть готовое решение.


Сообщение отредактировал al2401: 08 October 2018 - 13:59

  • 0

#2 al2401

al2401

Отправлено 23 October 2018 - 11:10

В шаблон фильтра добавить код разделяющий число на разряды:

<script>
jQuery(function($) {
	function discharge(element){
	  $(element).val(String($(element).val().replace(/[^0-9.]/g,'')).replace(/\B(?=(\d{3})+(?!\d))/g, "`"));
	}
	var element1 = '#jbfilter-id-b7303cdf-a31a-4dfb-9f97-dd3b03fb8205-1';
	discharge(element1);
	$(element1).keyup(function(){
	  discharge(element1);
	});
	var element2 = '#jbfilter-id-b7303cdf-a31a-4dfb-9f97-dd3b03fb8205-2';
	discharge(element2);
	$(element2).keyup(function(){
	  discharge(element2);
	});
});	
</script>

Числа в указанных элементах input, при вводе разделяются 1`000`000

 

Теперь чтобы фильтр работал, требуется перед отправкой параметров удалить разделяющий символ `

использую AJAX фильтр (v220) ,

в файле /modules/mod_jbzoo_search/assets-back-original/js/filter.js

в функции _submitAjax: function(params)

добавить : params = params.replace(/%60/g, '');  код убирает символы `

получится:

 _submitAjax: function(params) {
	params = params.replace(/%60/g, '');

...........................

В общем в Chrome работает, а в IE не понятно, после разделения на разряды, в поле input значение value = "" и в URL в параметре пусто, кто сталкивался как в IE события keyup правильно обрабатывать


  • 1





Темы с аналогичным тегами фильтр, разрядность, разделитель

Click to return to top of page in style!