![]() |
Ограничение знаков после точки в текст инпут.
Как сделать ограничение после ввода в текст инпут числа ограничение такого типа 1.00 т.е. если вводиться целое число то знаком скока угодно но после точки всего два знака может быть?
|
Готовых методов, насколько мне известно, нет. Нужно писать функцию на событие текстового поля onChanged, которая бы проверяла, введена или нет точка. Если точка введена, то свойство maxChars для текстового поля оперативно устанавливается в количество уже введенных символов (длина введенной строки) + 2. Остается только вопрос, как быть, если юзер захочет изменить целую часть.
Другой вариант - на onChanged брать введенную строку, приводить к Number, усекать до двух знаков после точки и тут же выводить в поле усеченное значение. Да, этот способ лучше, но он предполагает, что юзер в какой-то момент все-таки сможет ввести больше двух знаков после точки. UPD: Вот возможное решение придумалось (с onChanged, как оказалось, решение не очень получается). Пример для 3-х полей ввода, можно повесить проверку на любое количество полей ввода по аналогии: Код AS1/AS2:
- ввести триггеры установки того или иного состояния, чтобы не производить постоянные лишние действия с разрешением-запрещением ввода, если они уже были произведены, - ограничение на ввод нулей перед значимой частью числа, но уже лень самому, так работает и принцип ясен. :) Интересно, может быть есть какое-то более простое решение? |
Спасибо буду пробовать)
|
Можно поискать библиотеку regexp для AS2, уверен, что такая найдется.
|
Цитата:
|
Если речь идет о форме, я бы не стал вешать проверку на интервал, а проверял бы правильность введенных данных через некоторое время после остановки ввода:
Код AS1/AS2:
|
udaff, если только речь идет не о проверке, а именно о вводе новых правил ограничения. Тут вроде автору нужно не проверка пост-фактум, а именно недопущение.
Но еще одна засада с onChanged. ИМХО, не получится. Если юзер сделал ввод в дробной части и курсор остался там, то ограничения на ввод работать должны. Но если он просто мышкой перещелкнул в целую часть (события onChanged при этом не было!), то ограничения должны сняться, то есть должны заработать другие правила - ведь целую часть можно добавлять, в отличии от дробной. Поэтому я остановился на непрерывной проверке через интервальную функцию, пока поле имеет фокус ввода. У автора, насколько я знаю, форма. |
| Часовой пояс GMT +4, время: 02:43. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.