|
|

17.02.2015, 13:50
|
|
Аспирант
|
|
Регистрация: 22.02.2012
Сообщений: 70
|
|
|
Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
как на сайте сбербанка
http://www.sberbank.ru/moscow/ru/per...uying_project/
вводишь в поле "5000000", число преобразуется в "5 000 000". Если снова кликнул на поле, число превращается обратно в "5000000".
|
|

17.02.2015, 14:26
|
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,989
|
|
var n = '5000000'; //все значения в полях ввода, это строки
//форматируем по сотням
n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');
alert(n)
//возвращаем "в кучу"
n = n.replace(/\s/g, '')
alert(n)
|
|

17.02.2015, 15:57
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,304
|
|
|
Сообщение от VolodinAS
|
|
Разделение разрядов числа с помощью AJAX
|
Круто! 
|
|

18.02.2015, 10:53
|
|
Аспирант
|
|
Регистрация: 22.02.2012
Сообщений: 70
|
|
Сообщение от laimas
|
var n = '5000000'; //все значения в полях ввода, это строки
//форматируем по сотням
n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');
alert(n)
//возвращаем "в кучу"
n = n.replace(/\s/g, '')
alert(n)
|
Я сделал такое вот поле:
<input onblur="var n=$(this).val(); n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' '); $(this).val(n)" name="cost" value="" type="number">
после потери фокуса введенное в него число должно разделяться пробелами. но вместо этого если в числе больше 3 знаков, то оно исчезает.
|
|

18.02.2015, 11:00
|
 |
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,304
|
|
|
Сообщение от Hurray
|
$(this).val()
|
Это сильно!
Наверно именно такое называют "жиквери головного мозга"...
Поскольку это заменяется на
<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">
|
|

18.02.2015, 11:31
|
|
Аспирант
|
|
Регистрация: 22.02.2012
Сообщений: 70
|
|
Сообщение от ksa
|
Это сильно!
Наверно именно такое называют "жиквери головного мозга"...
Поскольку это заменяется на
<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">
|
То же самое. при вводе более чем 3х цифр они исчезают при потере фокуса
|
|

18.02.2015, 11:42
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
|
Сообщение от Hurray
|
|
они исчезают
|
|
Сообщение от Hurray
|
type="number"
|
|
|

18.02.2015, 11:46
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,154
|
|
<input onblur="this.value = this.value.replace(/[^\d]/g, '').replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ')" name="cost" value="" onfocus="this.value = this.value.replace(/\s/g, '')" >
|
|

18.02.2015, 11:52
|
|
Аспирант
|
|
Регистрация: 22.02.2012
Сообщений: 70
|
|
Сообщение от рони
|
<input onblur="this.value = this.value.replace(/[^\d]/g, '').replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ')" name="cost" value="" onfocus="this.value = this.value.replace(/\s/g, '')" >
|
Спасибо,то что надо
|
|
|
|