У меня есть следующий элемент ввода html5:
<input type="number">
Почему этот ввод позволяет вводить символ 'e' в поле ввода? Никакой другой символ алфавита не может быть введен (как ожидалось)
Использование Chrome v. 44.0.2403.107
Чтобы понять, что я имею в виду: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number
.
несколько раз в некоторых браузерах.Ответы:
Потому что именно в спецификации говорится, что это должно работать. Ввод числа может принимать числа с плавающей запятой , включая отрицательные символы и символ
e
илиE
(где экспонента - это число послеe
илиE
):источник
e
полезно для сжатия больших чисел, которые в противном случае было бы утомительно печатать. В качестве тривиального примера,2e2 = 2*10^2 = 200
e
означает экспонент.Мы можем сделать это так просто, как показано ниже
Обновленный ответ
мы можем сделать это еще проще, как предполагает @ 88 MPG
источник
return event.keyCode !== 69
поскольку это позволяет избежать ненужного троичного оператора. Также не рекомендую встраивание.e
или вставкеE
в полеТип вводимого числа HTML допускает «e / E», потому что «e» означает экспоненциальный, который является числовым символом.
Пример 200000 также можно записать как 2e5. Я надеюсь, что это помогает поблагодарить вас за вопрос.
источник
Лучший способ заставить использование числа, состоящего только из цифр:
это позволяет избежать «е», «-», «+», «.» ... все символы, которые не являются числами!
Чтобы разрешить только цифровые клавиши:
но примите "Backspace" (keyCode: 8) и "Delete" (keyCode: 46) ...
источник
источник
Чтобы скрыть букву
e
и знак минус,-
просто перейдите по ссылке:источник
Используя angular, вы можете сделать это, чтобы ограничить ввод e, +, -, E
источник
Угловая; с IDE keyCode устарело предупреждение
Функционально так же, как ответ Ринку, но с предупреждением IDE предупреждения
источник