Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с запятой при вводе сумм с копейками, в текстовое поле 
:(
    Опции темы
Zzet
  Дата 10.2.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



Здравствуйте! В поле «К оплате», набираю какую либо сумму с копейками(стоит здесь проверка на число/нечисло), но если нажать на запятую данные возвращаются на предыдущее значение, которое там было(вставил такую обработку, но как в этой обработке, исключить ситуацию с запятой?). Могут быть недовольства у пользователей по этому поводу. Как исправить ситуацию?
PM MAIL   Вверх
bars80080
Дата 10.2.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



удаляй запятую, а не возвращай на прежнее значение
PM MAIL WWW   Вверх
Zzet
Дата 10.2.2010, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



bars80080, как ее удалить, когда ее должен видеть пользователь? 
PM MAIL   Вверх
12345c
Дата 10.2.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Zzet, просто в проверку на число-не число добавляете "." и ",".
Код

/(\d|+|-)[0-9.,]*/.test(этот_input.value)


Это сообщение отредактировал(а) 12345c - 10.2.2010, 16:23


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Zzet
  Дата 10.2.2010, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



12345c Вот мой код:
Код

    function change(my, idu)
    {
       var summ=document.getElementById("suma");
       var elem=document.getElementById("cb"+my+"_"+idu);
       var ein=document.getElementById("n"+my+"_"+idu);
       var esum=document.getElementById(my);
       var esumall=document.getElementById("suma");
       if (isNaN(ein.value))
       {
             var v=ein.value;
             ein.value=value;//возвращаем старое значение
             //ein.focus();
             //alert("Вы поставили не число: "+v);
             ein.focus();
             return;
       }
       if (!elem.checked) return;
       //отнимаем старые значения
       esumall.value=(parseFloat(esumall.value)-value).toFixed(2);
       esum.innerHTML=(parseFloat(esum.innerHTML)-value).toFixed(2);
       //прибавляем новые
       value=parseFloat(ein.value);
       esumall.value=(parseFloat(esumall.value)+value).toFixed(2);

       document.getElementById("splata").value=esum.innerHTML=(parseFloat(esum.innerHTML)+value).toFixed(2);
       rashet(summ);
    }


 куда мне поставить
Цитата

код Javascript
1:
/(\d|+|-)[0-9.,]*/.test(этот_input.value)


PM MAIL   Вверх
12345c
Дата 11.2.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Вместо isNaN(ein.value) - 
Код

! /^(\d|\+|-)[0-9.,]*$/.test(ein.value)


Это сообщение отредактировал(а) 12345c - 11.2.2010, 13:51


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Zzet
Дата 11.2.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



12345c,  делаю так, но отладчик выдает ошибку
Код

invalid quantifier +|-)[0-9.,]*
 if (! /(\d|+|-)[0-9.,]*/.test(ein.value))\n


PM MAIL   Вверх
12345c
Дата 11.2.2010, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Код

! /^(\d|\+|-)[\d.,]*$/.test(ein.value)


Это сообщение отредактировал(а) 12345c - 11.2.2010, 13:52


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Amphiluke
Дата 11.2.2010, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



12345c, а точку не надо ли экранировать?
PM   Вверх
Zzet
Дата 11.2.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



12345c, спасибо!
Amphiluke, что Вы имеете ввиду?

PM MAIL   Вверх
Amphiluke
Дата 11.2.2010, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(Zzet @  11.2.2010,  20:29 Найти цитируемый пост)
что Вы имеете ввиду?

Код

! /^(\d|\+|-)[\d\.,]*$/.test(ein.value)

 smile

Если не экранировать, мне немного непонятен смысл регулярного выражения, а именно сочетание точки и квадратных скобок... Вот и спрашиваю.
PM   Вверх
12345c
Дата 11.2.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Amphiluke, в [] точку экранировать не надо.
alert(/^(\d|\+|-)[\d.,]*$/.test('3456.w')) - даёт false, alert(/^(\d|\+|-)[\d.,]*$/.test('3456.')) - true.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
Amphiluke
Дата 11.2.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Понятно.
Просто я подумал, что если точка соответствует любому символу, то тогда регулярное выражение «[.]» эквивалентно просто «.»  А оно вон как, оказывается.  smile  (Впрочем, с экранировкой тоже, вроде, работает).
PM   Вверх
Zzet
Дата 11.2.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 28.6.2009

Репутация: нет
Всего: нет



что-то не очень хорошо получается. Пользователь вводит, к примеру, 1,,,,33 в текстовое поле, но так ведь нельзя! нужна одна запятая, и в целом код не воспринимает это значение как число...
PM MAIL   Вверх
Amphiluke
Дата 11.2.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Zzet, попробуйте
Код

/^(\d|\+|-)\d*[.,]?\d*$/.test(ein.value)

PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0851 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.