Страница 1 из 1

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

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

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

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