Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов? (https://javascript.ru/forum/dom-window/53766-kak-sdelat-chtoby-pri-vvode-chisla-v-pole-dobavlyalis-razdeliteli-grupp-razryadov.html)

Hurray 17.02.2015 14:50

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

VolodinAS 17.02.2015 15:03

Задавал этот вопрос ранее. Почитай, может выцарапаешь что

http://javascript.ru/forum/ajax/4275...hhyu-ajax.html

laimas 17.02.2015 15:26

var n = '5000000'; //все значения в полях ввода, это строки
//форматируем по сотням
n = n.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');
alert(n)
//возвращаем "в кучу"
n = n.replace(/\s/g, '')
alert(n)

ksa 17.02.2015 16:57

Цитата:

Сообщение от VolodinAS
Разделение разрядов числа с помощью AJAX

Круто! :D

Hurray 18.02.2015 11:53

Цитата:

Сообщение от laimas (Сообщение 356995)
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 знаков, то оно исчезает.

ksa 18.02.2015 12:00

Цитата:

Сообщение от Hurray
$(this).val()

Это сильно! :D
Наверно именно такое называют "жиквери головного мозга"...

Поскольку это заменяется на

<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">

Hurray 18.02.2015 12:31

Цитата:

Сообщение от ksa (Сообщение 357114)
Это сильно! :D
Наверно именно такое называют "жиквери головного мозга"...

Поскольку это заменяется на

<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">

То же самое. при вводе более чем 3х цифр они исчезают при потере фокуса

рони 18.02.2015 12:42

:write:
Цитата:

Сообщение от Hurray
они исчезают

Цитата:

Сообщение от Hurray
type="number"


рони 18.02.2015 12:46

:-?
<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, '')" >

Hurray 18.02.2015 12:52

Цитата:

Сообщение от рони (Сообщение 357124)
:-?
<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, '')" >

Спасибо,то что надо


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