Мне нужно проверить содержимое a, <input>
в которое можно вводить только целые числа больше 0 (от 1 до X). Как я могу указать это в атрибуте pattern
? Или надо скриптом проверять?
Мне нужно проверить содержимое a, <input>
в которое можно вводить только целые числа больше 0 (от 1 до X). Как я могу указать это в атрибуте pattern
? Или надо скриптом проверять?
Есть 2 вещи, которые могут иметь для вас значение. И в зависимости от этого будет решение.
С тем, что все сказали вам достаточно и более чем достаточно:
Тогда у вас нет другого выбора, кроме как использовать сценарий.
Есть и попроще, но следующий, который я поставил, уже можно отнести к разряду надуманных.
Чтобы добавить еще одно поле, вы можете создать экземпляр другого объекта NumberField, передав ему какой-нибудь допустимый селектор.
Примечание . Я добавил строку кода, чтобы ее также можно было удалить с помощью клавиши удаления.
В любом случае, как сказал @Francisco Romero, проверки не следует оставлять только на стороне клиента. Они легко прыгают.
В этом случае, просто предотвратив выполнение скрипта и проверив поле для удаления шаблона, пользователь сможет отправить на сервер все, что захочет.
Добавляю более простое решение, и более приятное для тех, кто использует javascript классическим способом. Однако есть некоторые отличия от предыдущего решения.
Отличия от предыдущего - Не позволяет вставлять допустимые значения в поле. - Не позволяет перетаскивать в него действительные числа. - Принять, что поле может быть полностью удалено. (В обоих решениях это поведение можно изменить при необходимости.)
Наконец, если вы хотите использовать это последнее решение для нескольких полей, я бы рекомендовал использовать его с делегированием событий.
Чтобы использовать атрибут шаблона , было бы
pattern="[0-9]+"
Вы можете назначить шаблон прямо в HTML, который будет писать только цифры.
Существует также числовой ввод, который принимает только числа.
И, будучи числами, вы можете присвоить этим входам минимальное значение.
Если вы хотите использовать a
pattern
, вы можете использоватьpattern="^[0-9]+"
так, чтобы при отправке формы появлялась ошибка, как будто вы вводите неправильное значение, если вводите отрицательное число.Кроме того, если вы хотите, чтобы пользователь не мог вводить отрицательные значения любым способом, который вы могли бы использовать
min="1"
, чтобы из своих собственныхinput
он мог выбирать только значения больше единицы.Однако предыдущий шаг не помешает пользователю ввести с клавиатуры, например, -15, поэтому вам понадобится скрипт, чтобы контролировать, что никто не может вводить отрицательные числа в ваш
input
. Для этого я использовал функциюonkeypress
, и я указал, что если они вводят отрицательное число, число, которое вводится вinput
нее, равно 1.ВАЖНО: Выполнение проверки на стороне клиента с помощью
Javascript
недостаточно, поскольку этим типом проверки можно манипулировать. Вы также должны контролировать его со стороны сервера для большей безопасности на вашей платформе.Пример:
С html5 вы можете пометить его прямо во вводе.
Пример: целые числа от 0 до 1000, масштаб единицы в единице:
Больше информации здесь .
Вы можете сделать это с помощью
^[1-9]\d*$
.Заставляет вас вводить только положительные числа больше нуля. Проверка выполняется без использования скриптов.
Пример:
Вы можете использовать два разных способа:
<input type="number" name="points" min="1" max="9" step="1">
Атрибут числа типа ввода
min
: задает минимальное значение поля ввода .Атрибут
max
: задает максимальное значение поля ввода .Атрибут
step
: задает допустимые диапазоны чисел для поля ввода.Атрибут шаблона
<input type="text" pattern="[0-9]{1}" title="Formato: 1 digito" />
<input type="text" pattern="[0-9]{3}" title="Formato: 3 dígitos" />
, т.е.001
и т.д.Пример типа ввода
Number
:Пример атрибута
pattern
:Я добавил мин "0" и создал функцию в Js для проверки:
И это моя функция: