| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > проблема с запятой при вводе сумм с копейками |
| Автор: Zzet 10.2.2010, 15:28 |
| Здравствуйте! В поле «К оплате», набираю какую либо сумму с копейками(стоит здесь проверка на число/нечисло), но если нажать на запятую данные возвращаются на предыдущее значение, которое там было(вставил такую обработку, но как в этой обработке, исключить ситуацию с запятой?). Могут быть недовольства у пользователей по этому поводу. Как исправить ситуацию? |
| Автор: bars80080 10.2.2010, 15:37 |
| удаляй запятую, а не возвращай на прежнее значение |
| Автор: Zzet 10.2.2010, 15:42 |
| bars80080, как ее удалить, когда ее должен видеть пользователь? |
| Автор: 12345c 10.2.2010, 16:22 | ||
Zzet, просто в проверку на число-не число добавляете "." и ",".
|
| Автор: Zzet 10.2.2010, 18:21 | ||||
12345c Вот мой код:
куда мне поставить
|
| Автор: 12345c 11.2.2010, 00:39 | ||
Вместо isNaN(ein.value) -
|
| Автор: Zzet 11.2.2010, 12:36 | ||
12345c, делаю так, но отладчик выдает ошибку
|
| Автор: 12345c 11.2.2010, 13:50 | ||
|
| Автор: Amphiluke 11.2.2010, 14:48 |
| 12345c, а точку не надо ли экранировать? |
| Автор: Zzet 11.2.2010, 17:29 |
| 12345c, спасибо! Amphiluke, что Вы имеете ввиду? |
| Автор: Amphiluke 11.2.2010, 17:46 | ||
Если не экранировать, мне немного непонятен смысл регулярного выражения, а именно сочетание точки и квадратных скобок... Вот и спрашиваю. |
| Автор: 12345c 11.2.2010, 17:54 |
| Amphiluke, в [] точку экранировать не надо. alert(/^(\d|\+|-)[\d.,]*$/.test('3456.w')) - даёт false, alert(/^(\d|\+|-)[\d.,]*$/.test('3456.')) - true. |
| Автор: Amphiluke 11.2.2010, 18:06 |
| Понятно. Просто я подумал, что если точка соответствует любому символу, то тогда регулярное выражение «[.]» эквивалентно просто «.» А оно вон как, оказывается. |
| Автор: Zzet 11.2.2010, 18:06 |
| что-то не очень хорошо получается. Пользователь вводит, к примеру, 1,,,,33 в текстовое поле, но так ведь нельзя! нужна одна запятая, и в целом код не воспринимает это значение как число... |
| Автор: Amphiluke 11.2.2010, 18:15 | ||
Zzet, попробуйте
|
| Автор: Zzet 11.2.2010, 18:23 |
| Amphiluke, попробавал . Значение 1,33 не число, соответсвенно часть ,33 не участвует в пересчетах на странице, и при записи в базу не проходит тоже... |
| Автор: Amphiluke 11.2.2010, 18:43 | ||
Что-то я не врубился совсем.
|
| Автор: Zzet 11.2.2010, 19:11 |
| Значение 1,33=1+0,33. Запятая ставится на клавиатуре там, где буквы. В результате 1 берет в расчеты, а 0,33 нет Добавлено через 42 секунды и запись в базу тоже не происходит... |