Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.08.2015, 12:06
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

разряды цен с пробелами
Всем добрый день нужна помощь, есть фильтр товаров на сайте, для фильтрации по цене используется UI-slider, цена в инпуте имеет вид 1000000 преобразовал цену с помощью функции в 1 000 000 код функции:
function commaInt(val) {
            return String(val).split("").reverse().join("")
                  .replace(/(.{3}\B)/g, "$1 ")
                  .split("").reverse().join("");
      }

но теперь при сабмите не фильтрует, т.к. в гет параметрах на месте пробелов стоит +
Как исправить код чтобы данные в гет параметры приходили без пробелов? Заранее спасибо ниже приведен код слайдера:
jQuery(document).ready(function(){
/* слайдер цен */
function commaInt(val) {
            return String(val).split("").reverse().join("")
                  .replace(/(.{3}\B)/g, "$1 ")
                  .split("").reverse().join("");
      }
function delInt(val)

{
  return String(val).split("").reverse().join("")
                  .replace(/\s/g, " ")
                  .split("").reverse().join("");
}      
jQuery("#slider").slider({
	min: 100000,
	max: 9999999,
	values: [100000,9999999],
	range: true,
	step: 10000,
	stop: function(event, ui) {
		jQuery("input#minCost").val(commaInt(jQuery("#slider").slider("values",0)));
		jQuery("input#maxCost").val(commaInt(jQuery("#slider").slider("values",1)));
		
    },
    slide: function(event, ui){
		jQuery("input#minCost").val(commaInt(jQuery("#slider").slider("values",0)));
		jQuery("input#maxCost").val(commaInt(jQuery("#slider").slider("values",1)));
    }
});

jQuery("input#minCost").change(function(){

	var value1=jQuery("input#minCost").val();
	var value2=jQuery("input#maxCost").val();

    if(parseInt(value1) > parseInt(value2)){
		value1 = value2;
		jQuery("input#minCost").val(value1);
	}
	jQuery("#slider").slider("values",0,value1);
		
});
	
jQuery("input#maxCost").change(function(){
		
	var value1=jQuery("input#minCost").val();
	var value2=jQuery("input#maxCost").val();
	
	if (value2 > 9999999) { value2 = 9999999; jQuery("input#maxCost").val(9999999)}

	if(parseInt(value1) > parseInt(value2)){
		value2 = value1;
		jQuery("input#maxCost").val(value2);
	}
	jQuery("#slider").slider("values",1,value2);
});



// фильтрация ввода в поля
	jQuery('input').keypress(function(event){
		var key, keyChar;
		if(!event) var event = window.event;
		
		if (event.keyCode) key = event.keyCode;
		else if(event.which) key = event.which;
	
		if(key==null || key==0 || key==8 || key==13 || key==9 || key==46 || key==37 || key==39 ) return true;
		keyChar=String.fromCharCode(key);
		
		if(!/\d/.test(keyChar))	return false;
	
	});

});

Последний раз редактировалось krasnov8953, 04.08.2015 в 13:30.
Ответить с цитированием
  #2 (permalink)  
Старый 04.08.2015, 17:31
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

Есть кто или мертво сдесь?
Ответить с цитированием
  #3 (permalink)  
Старый 04.08.2015, 17:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Если форматируете вывод цены, значит в фильтре убирайте форматирование. А чего вы ожидаете или можно иначе как-то?
Ответить с цитированием
  #4 (permalink)  
Старый 04.08.2015, 18:17
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

я думаю можно перед отправкой формы убрать эти пробелы, ну это пока фантазия не знаю как реализовать просто, новичок еще
Ответить с цитированием
  #5 (permalink)  
Старый 04.08.2015, 18:17
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

как тогда вообще можно сделать это?
Ответить с цитированием
  #6 (permalink)  
Старый 04.08.2015, 18:36
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

походу никак)
Ответить с цитированием
  #7 (permalink)  
Старый 04.08.2015, 18:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Не знаю, что за слайдер используется, и времени нет на разборы, но это что?:

var value1=jQuery("input#minCost").val();
    var value2=jQuery("input#maxCost").val();


если это и есть передача значений полей в фильтр, уберите форматирование у значений:

var value1=jQuery("input#minCost").val().replace(/\D/g,'');


В общем ищите место где оперируют значения полей, и даже не зная JS, "методом тыка" найдете место где необходимо .replace(/\D/g,'')

PS. Вот этим .replace(/(.{3}\B)/g, "$1 ") не стоило бы нагружать клиента, у серверного языка есть готовые функции форматирования чисел в любом формате, включая и денежный.

Последний раз редактировалось laimas, 04.08.2015 в 18:52.
Ответить с цитированием
  #8 (permalink)  
Старый 04.08.2015, 19:16
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

Это UI slider к сожалению не работает так .replace(/\D/g,'')
Ответить с цитированием
  #9 (permalink)  
Старый 04.08.2015, 21:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Нет времени у меня разбираться даже в том коде, что в посте, не говоря уже о слайдерах и прочем. )

Если форма имеет поля с форматируемым значением, а проверяется естественно без них, значит нужно удалить не числовые символы в значениях, и другого решения быть не может.
А удалять надо в том месте, где значения форм передаются в фильтр, слайдер илу куда угодно.
Ответить с цитированием
  #10 (permalink)  
Старый 05.08.2015, 16:42
Интересующийся
Отправить личное сообщение для krasnov8953 Посмотреть профиль Найти все сообщения от krasnov8953
 
Регистрация: 04.08.2015
Сообщений: 17

Даже лучшие умы сдаются
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделение разрядов числа пробелами. Kolyaj Ваши сайты и скрипты 17 12.03.2020 15:57
Разделить число на разряды simple Events/DOM/Window 12 23.10.2015 20:48
Настроить диапазон цен для слайдера ? ilyas-> jQuery 3 25.06.2013 09:03
разделение числа на разряды Sober_exe Ваши сайты и скрипты 12 08.02.2013 14:01
Преобразование дробного числа в строку с пробелами между разрядами Mutagena Общие вопросы Javascript 3 28.03.2011 11:05