Дипазон значений для числового поля

Пишите ваши предложения здесь.
Ответить
sanys
Сообщения: 113
Зарегистрирован: 30 май 2017, 12:52
Имя: Александр
Откуда: Казахстан

Дипазон значений для числового поля

Сообщение sanys »

Мне потребовалось организовать учет IP-адресов, октеты которых возможны в диапазоне 0-255.
Возможно есть не очевидное решение.
Я пробовал при помощи Поля с маской ввода (999.999.999.999) - но нет защиты от опечатки, и ввода, например 423.025.112.111, к тому же если надо вводить двузначный/однозначный октет, то надо добивать нулями (025 в примере).
Второй мой путь - для вывода IP-адреса использовать текст по шаблону, а для ввода - в принципе любое поле ввода (хоть простое, хоть числовое, хоть с маской). Так решается проблема с добиванием нулей, но добавляется другая - можно ввести абсолютно любое число, даже четырех- и более значное.
Было бы не плохо иметь возможность задать диапазон возможных используемых значений для типа поля Числовое поле. Тогда октеты вводить можно было бы при помощи числовых полей, а для вывода использовать все тот же Текст по шаблону. Немного криво, но юзабельно.
Другой вариант - для Поля с маской ввода, при определении собственной маски, сделать возможность задавать диапазон целых чисел, например в фигурных скобках aaa={0-255}. Но тут остается вопрос с определением количества знаков - основное предназначение маски ввода.
Или создать специальный тип поля IP-адрес, но это утопия )))
Аватара пользователя
Евгений
Сообщения: 398
Зарегистрирован: 11 июл 2016, 13:21
Имя: Евгений
Откуда: Петропавловск-Камчатский

Re: Дипазон значений для числового поля

Сообщение Евгений »

Самое простое и универсальное решение - это к каждому полю ввода в форме настройки добавить дополнительное поле "Значение соответствует шаблону", с регэкспом-валидатором. Если шаблон пустой, то поле ничего не проверяет. Если шаблон задан, то при попытке покинуть поле его значение проверяется регэкспом и выдается красным цветом сообщение "Не соответствует шаблону".
Ответить