Javascript.RU

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

Как форматировать в input ценовую информацию?
Весь инет облазил. Никак не могу найти. Пожалуйста подскажите - как при вводе цены в поле input сделать так, чтобы оно динамически форматировало данные по три знака с пробелом.
Например: при вводе 940000000 сразу форматировало на 940 000 000.
Буду крайне признателен за информацию. Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2011, 00:33
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

<input id="inp">
<script>
input= document.getElementById("inp");
input.onkeyup = input.onchange= input.onpaste= function(){
 this.value= this.value.replace(/[^\d]/g, "").replace(/\d{3}(?!$|(?:\s$))/g, "$& ");
};
</script>


P. S. Вообще, нужно ограничить нажатия всех клавиш, кроме цифр (ну и стрелок там, шифтов и т.д.)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 19.11.2011 в 00:37.
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2011, 00:41
Новичок на форуме
Отправить личное сообщение для mistermandarin Посмотреть профиль Найти все сообщения от mistermandarin
 
Регистрация: 19.11.2011
Сообщений: 5

Уважаемый trikadin, большое спасибо за ответ. Единственный момент. Так как это именно финансовая информация, то форматирование должно автоматически идти с права налево по три символа и пробел.
А именно, цифра из четырех символов это 9 400; при добавление еще одной цифры форматироваться в 94 000; еще одной в 940 000 и т.д.
Буду очень признателен за совет.
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2011, 00:54
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

<input id="input">
<script>(function(){
	var handler = function(data){
		return data.split(/(\d{3})/).join(' ').replace(/\s+/g, ' ').replace(/^\s+/, '').replace(/\s+$/, '');
	}, lastValue = '', input = document.getElementById('input');
	if(input.addEventListener)input.addEventListener('input', function(){
		this.value = handler(this.value);
	}, false);
	else if(input.attachEvent) input.attachEvent('onpropertychange', function(){
		if(window.event.propertyName == 'value' && window.event.propertyName != lastValue){
			this.value = lastValue = handler(this.value);
		}
	});
}());</script>


Где то так.
Что то кривая регулярка вышла %)
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.

Последний раз редактировалось Nekromancer, 19.11.2011 в 01:10.
Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2011, 01:04
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

mistermandarin, а, ну да, тупанул. Nekromancer, при всём уважении, код глючит.

Сейчас подумаю...
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 19.11.2011 в 01:13.
Ответить с цитированием
  #6 (permalink)  
Старый 19.11.2011, 01:10
Новичок на форуме
Отправить личное сообщение для mistermandarin Посмотреть профиль Найти все сообщения от mistermandarin
 
Регистрация: 19.11.2011
Сообщений: 5

Уважаемый trikadin, скрипт, к сожалению, перестал работать. Не могли бы его подшаманить? Спасибо.
Ответить с цитированием
  #7 (permalink)  
Старый 19.11.2011, 01:11
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

trikadin,
Да, я заметил. Уже нет вроде.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #8 (permalink)  
Старый 19.11.2011, 01:24
Новичок на форуме
Отправить личное сообщение для mistermandarin Посмотреть профиль Найти все сообщения от mistermandarin
 
Регистрация: 19.11.2011
Сообщений: 5

Уважаемый Nekromancer, все же можно как то настроить скрипт именно на финансовые данные. Смысл в том, что бы пробел ставился после каждой третьей цифры справа! А в Вашем варианте получается при вводе цифры 1233, форматирование в 123 3, тогда как хотелось бы 1 233. В любом случае спасибо за то, что откликнулись.
Ответить с цитированием
  #9 (permalink)  
Старый 19.11.2011, 01:33
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Ничего умнее в голову мне не пришло...

<input id="inp">
<script>
(function(){
var prev_value="";
var input= document.getElementById("inp");
input.onkeyup = input.onchange= input.onpaste= function(){
 this.value= this.value.replace(/[^\d\s]/g, "");
 if (prev_value==this.value)// отслеживаем изменение значения
  return;
 prev_value= this.value;
 this.value= this.value.replace(/[^\d]/g, "").split("").reverse().join("").replace(/\d{3}(?!$|(?:\s$))/g, "$& ").split("").reverse().join(""); // Уууу, цепочки!..
};
})();
</script>


Всё. Окончательный мой вариант))
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)

Последний раз редактировалось trikadin, 19.11.2011 в 01:38.
Ответить с цитированием
  #10 (permalink)  
Старый 19.11.2011, 01:35
Новичок на форуме
Отправить личное сообщение для mistermandarin Посмотреть профиль Найти все сообщения от mistermandarin
 
Регистрация: 19.11.2011
Сообщений: 5

Уважаемый trikadin. ТО ЧТО НАДО. Огромное человеческое СПАСИБО !!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать INPUT с красивым задним фоном? greatilya (X)HTML/CSS 15 26.11.2009 14:04
help!!! как взять информацию со страници не заходя на нее ajax AJAX и COMET 11 19.10.2009 16:12
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
input как урать подсказку grusha jQuery 4 11.06.2009 23:23
Разным элементам input - разное форматирование. Как? eclipse (X)HTML/CSS 1 25.10.2007 13:55