Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Input Number разделить тысяч (https://javascript.ru/forum/dom-window/71620-input-number-razdelit-tysyach.html)

Iwashka 01.12.2017 12:19

Input Number разделить тысяч
 
Здравствуйте.
Работаю над input'ом для ввода числовых данных (точность до 2 знаков после запятой).
Подскажите, пожалуйста, как написать функцию, которая бы вставляла пробел после каждых 3-х символов, тем самым разделяла тысячи в числе.
Однако, необходимо цифровая клавиатура на мобильных устройствах.
Два возможных варианта решения.
1. <input type="number" step="0.01">
Плюсы:
- работа с дробной частью
- цифровая клавиатура на моб. устройствах (Android, iOS)
Не реализовано:
- разделение тысяч

2. <input type="text">
Плюсы:
- работа с дробной частью
- разделение тысяч
Не реализовано:
- цифровая клавиатура на моб. устройствах (Android). iOS реализуется тэгом.

Помогите, пожалуйста, побороть проблему разделения тысяч в первом варианте. Или же появление цифровой клавиатура на Android во 2-м варианте :-)

Nexus 01.12.2017 12:21

// © [url]https://stackoverflow.com/a/34817120[/url]
function number_format(number,decimals,dec_point,thousands_sep){
	var str=parseFloat(number).toFixed(decimals?decimals:0).toString().split('.'),
		parts=[];
	for(var i=str[0].length;i>0;i-=3)
		parts.unshift(str[0].substring(Math.max(0,i-3),i));

	str[0]=parts.join(thousands_sep?thousands_sep:',');
	return str.join(dec_point?dec_point:'.');
}

alert(number_format(123456.7890,2,'.',' '));

Клавиатура должна появляться, когда input получает фокус.
Можно при получении им фокуса менять цель фокуса, должно помочь.


Часовой пояс GMT +3, время: 11:10.