в настоящее время у меня есть следующий код
<input type="number" />
получается что-то вроде этого
Маленькие селекторы справа позволяют цифре переходить в минус. Как мне это предотвратить?
У меня есть сомнения по поводу использования type="number"
, оно вызывает больше проблем, чем решает, я все равно собираюсь проверить его, так что я должен просто вернуться к использованию type="text"
?
Ответы:
Добавить в
min
атрибутисточник
min="0.000001"
поможет в большинстве случаев. Более 6 знаков после запятой, JavaScript преобразует его в экспоненциальный формат.Я нашел другое решение для предотвращения отрицательного числа.
источник
oninput="validity.valid||(value='');"
останавливает один от набора-ve чиселЭто зависит от того, насколько точно вы хотите быть. Если вы хотите принимать только целые числа, чем:
Если вы хотите плавать, например, с двумя цифрами после десятичной точки:
источник
max
значение.Вы можете заставить ввод содержать только положительное целое число, добавив
onkeypress
вinput
тег.Вот,
event.charCode >= 48
гарантируется, что возвращаются только числа, большие или равные 0, аmin
тег гарантирует, что вы можете прийти к минимуму 1, прокручивая строку ввода.источник
Вы можете использовать следующее, чтобы
type="number"
принимать только положительные числа:источник
Вы можете предотвратить отрицательный ввод в форме ввода чисел следующим образом:
источник
Пытаться
<input type="number" pattern="^[0-9]" title='Only Number' min="1" step="1">
источник
Если требуется ввод текста , шаблон работает также
источник
Я не могу найти идеальное решение, так как некоторые работы для ввода, но не для копирования и вставки, некоторые наоборот. Это решение работает для меня. Это предотвращает от отрицательного числа, набрав «е», скопировать и вставить «е» текст.
создать функцию.
добавить эти свойства для ввода. эти два препятствуют копированию и вставке нечислового текста, включая «е». Вы должны иметь оба вместе, чтобы вступить в силу.
Если вы используете Vue, вы можете обратиться к этому ответу здесь . Я извлек его в миксин, который можно использовать повторно.
источник
добавьте этот код в ваш тип ввода;
например:
источник
Другое решение состоит в том, чтобы использовать Js, чтобы сделать его положительным (опция min может быть отключена и недействительна, когда пользователь вводит что-то). Отрицательное, если не нужно, также можно использовать событие on ('keydown')!
источник
Это зависит от того, хотите ли вы int или float. Вот как эти два будут выглядеть:
К полю int прикреплена правильная проверка, поскольку его минимум равен 1. Однако, поле с плавающей запятой принимает 0; Чтобы справиться с этим, вы можете добавить еще один валидатор ограничений :
JSFiddle здесь.
Обратите внимание, что ни одно из этих решений не полностью препятствует тому, чтобы пользователь пытался ввести неверный ввод, но вы можете позвонить
checkValidity
илиreportValidity
узнать, набрал ли пользователь допустимый ввод.Конечно, вы все равно должны иметь проверку на стороне сервера, потому что пользователь всегда может игнорировать проверку на стороне клиента.
источник
Попробуй это:
null
иnegitive
значения.источник
Если вы попытаетесь ввести отрицательное число, событие onkeyup блокирует это, и если вы используете стрелку на входном номере, событие onblur разрешает эту часть.
источник
источник
С типом ввода текста вы можете использовать это для лучшей проверки,
источник
Попробуй это:
источник