Как сделать type= "number" только для положительных чисел
В настоящее время у меня есть следующий код
<input type="number" />
получается что-то вроде этого

маленькие селекторные вещи справа позволяют номеру перейти в отрицательный. Как мне это предотвратить?
у меня возникли сомнения по поводу использования type="number", это вызывает больше проблем, чем это решение, я собираюсь здравомыслие проверить его в любом случае, так что я должен просто вернуться к использованию type="text"?
11 ответов:
добавить a
minатрибут<input type="number" min="0">
Это зависит от того, насколько точно вы хотите быть. Это вы хотите принимать только целые числа, чем:
<input type="number" min="1" step="1">Если вы хотите поплавки, например, с двумя цифрами после запятой:
<input type="number" min="0.01" step="0.01">
Я нашел другое решение, чтобы предотвратить отрицательное число.
<input type="number" name="test_name" min="0" oninput="validity.valid||(value='');">
вы можете заставить вход содержать только положительное целое число, добавив
onkeypressвнутриinputтег.<input type="number" onkeypress="return event.charCode >= 48" min="1" >здесь
event.charCode >= 48гарантирует, что возвращается только число, большее или равное 0, в то время какminтег гарантирует, что вы можете прийти к минимуму 1, прокручивая в строке ввода.
добавьте этот код в свой тип ввода;
onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57"например:
<input type="text" name="age" onkeypress="return (event.charCode == 8 || event.charCode == 0 || event.charCode == 13) ? null : event.charCode >= 48 && event.charCode <= 57" />
вы можете использовать следующее, чтобы сделать
type="number"принимать только положительные числа:input type="number" step="1" pattern="\d+"
С типом ввода текста вы можете использовать это для лучшей проверки,
return (event.keyCode? (event.keyCode == 69 ? false : event.keyCode >= 48 && event.keyCode <= 57) : (event.charCode >= 48 && event.charCode <= 57))? true : event.preventDefault();
попробуйте это:
Yii2 : Validation rule public function rules() { return [ ['location_id', 'compare', 'compareValue' => 0', 'operator' => '>'], ]; }
попробуйте это. Это работает как шарм. Никакого дополнительного кода JavaScript не требуется.
onkeypress="return event.charCodeвводим номер в тег input. вроде этого.
<input type="number" min="0" max="" onkeypress="return event.charCode >= 48" class="form-control" placeholder="Enter number(0-10)">спасибо.
Comments