Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2015, 14:50
Аспирант
Отправить личное сообщение для Hurray Посмотреть профиль Найти все сообщения от Hurray
 
Регистрация: 22.02.2012
Сообщений: 70

Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
Как сделать, чтобы при вводе числа в поле добавлялись разделители групп разрядов?
как на сайте сбербанка
http://www.sberbank.ru/moscow/ru/per...uying_project/
вводишь в поле "5000000", число преобразуется в "5 000 000". Если снова кликнул на поле, число превращается обратно в "5000000".
Ответить с цитированием
  #2 (permalink)  
Старый 17.02.2015, 15:03
Аспирант
Отправить личное сообщение для VolodinAS Посмотреть профиль Найти все сообщения от VolodinAS
 
Регистрация: 24.11.2012
Сообщений: 44

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

Разделение разрядов числа с помощью AJAX
Ответить с цитированием
  #3 (permalink)  
Старый 17.02.2015, 15:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 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)
Ответить с цитированием
  #4 (permalink)  
Старый 17.02.2015, 16:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от VolodinAS
Разделение разрядов числа с помощью AJAX
Круто!
Ответить с цитированием
  #5 (permalink)  
Старый 18.02.2015, 11:53
Аспирант
Отправить личное сообщение для Hurray Посмотреть профиль Найти все сообщения от Hurray
 
Регистрация: 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 знаков, то оно исчезает.
Ответить с цитированием
  #6 (permalink)  
Старый 18.02.2015, 12:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от Hurray
$(this).val()
Это сильно!
Наверно именно такое называют "жиквери головного мозга"...

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

<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">
Ответить с цитированием
  #7 (permalink)  
Старый 18.02.2015, 12:31
Аспирант
Отправить личное сообщение для Hurray Посмотреть профиль Найти все сообщения от Hurray
 
Регистрация: 22.02.2012
Сообщений: 70

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

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

<input onblur="this.value = this.value.replace(/\B(?=(?:\d{3})+(?!\d))/g, ' ');" name="cost" value="" type="number">
То же самое. при вводе более чем 3х цифр они исчезают при потере фокуса
Ответить с цитированием
  #8 (permalink)  
Старый 18.02.2015, 12:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120


Сообщение от Hurray
они исчезают
Сообщение от Hurray
type="number"
Ответить с цитированием
  #9 (permalink)  
Старый 18.02.2015, 12:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,120


<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, '')" >
Ответить с цитированием
  #10 (permalink)  
Старый 18.02.2015, 12:52
Аспирант
Отправить личное сообщение для Hurray Посмотреть профиль Найти все сообщения от Hurray
 
Регистрация: 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, '')" >
Спасибо,то что надо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Как сделать, чтобы музыка <embed> на странице не играла только при первом посещении? Bad Request Общие вопросы Javascript 22 27.07.2009 19:44
Как сделать, чтобы 2 ссылки отображались как hover при наведении мышкой на любую? Ava Элементы интерфейса 5 19.05.2009 23:24