Tengo el siguiente elemento de entrada html5:
<input type="number">
¿Por qué esta entrada permite que se ingrese el carácter 'e' en el campo de entrada? No se puede ingresar ningún otro carácter del alfabeto (como se esperaba)
Usando Chrome v. 44.0.2403.107
Para ver a qué me refiero: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number

.varias veces en algunos navegadores.Respuestas:
Porque así es exactamente como la especificación dice que debería funcionar. La entrada de número puede aceptar números de coma flotante , incluidos símbolos negativos y el carácter
eoE(donde el exponente es el número después deeoE):fuente
ees útil para condensar grandes números que de otra manera serían tediosos de escribir. Como un ejemplo trivial,2e2 = 2*10^2 = 200esignifica Exponente.Podemos hacerlo tan simple como a continuación
Respuesta actualizada
podemos hacerlo aún más simple como @ 88 MPG sugiere
fuente
return event.keyCode !== 69ya que evita un operador ternario innecesario. Tampoco recomendaría en línea.eoEen el campo, aunqueEl tipo de número de entrada HTML permite "e / E" porque "e" significa exponencial, que es un símbolo numérico.
El ejemplo 200000 también se puede escribir como 2e5. Espero que esto ayude, gracias por la pregunta.
fuente
La mejor manera de forzar el uso de un número compuesto solo por dígitos:
esto evita 'e', '-', '+', '.' ... todos los personajes que no son números!
Para permitir solo las teclas numéricas:
pero acepte "Retroceso" (código clave: 8) y "Eliminar" (código clave: 46) ...
fuente
fuente
Para ocultar tanto la letra
ecomo el signo menos-solo ve por:fuente
Usando angular, puede hacer esto para restringir la entrada de e, +, -, E
fuente
Angular; con IDE keyCode advertencia en desuso
Funcionalmente igual que la respuesta de rinku pero con prevención de advertencia IDE
fuente