J'ai l'élément d'entrée html5 suivant:
<input type="number">
Pourquoi cette entrée permet-elle de saisir le caractère «e» dans le champ de saisie? Aucun autre caractère alphabétique ne peut être saisi (comme prévu)
Utilisation de Chrome v. 44.0.2403.107
Pour voir ce que je veux dire: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number
.
plusieurs fois dans certains navigateurs.Réponses:
Parce que c'est exactement ainsi que la spécification indique que cela devrait fonctionner. L'entrée numérique peut accepter des nombres à virgule flottante , y compris des symboles négatifs et le caractère
e
ouE
(où l'exposant est le nombre après lee
ouE
):la source
e
est utile pour condenser de grands nombres qui seraient autrement fastidieux à taper. À titre d'exemple trivial,2e2 = 2*10^2 = 200
e
signifie exposant.Nous pouvons le rendre si simple comme ci-dessous
Réponse mise à jour
nous pouvons le rendre encore plus simple comme le suggère @ 88 MPG
la source
return event.keyCode !== 69
car il évite un opérateur ternaire inutile. Je ne recommanderais pas non plus l'incrustation.e
ouE
sur le terrainLe type de numéro d'entrée HTML autorise "e / E" car "e" signifie exponentiel qui est un symbole numérique.
L'exemple 200000 peut également être écrit comme 2e5. J'espère que cela aide à vous remercier pour la question.
la source
La meilleure façon de forcer l'utilisation d'un nombre composé uniquement de chiffres:
cela évite 'e', '-', '+', '.' ... tous les caractères qui ne sont pas des chiffres!
Pour autoriser uniquement les touches numériques:
mais acceptez "Backspace" (keyCode: 8) et "Delete" (keyCode: 46) ...
la source
la source
Pour masquer la lettre
e
et le signe moins, optez-
simplement pour:la source
En utilisant angulaire, vous pouvez le faire pour restreindre la saisie de e, +, -, E
la source
Angulaire; avec avertissement obsolète IDC keyCode
Fonctionnellement identique à la réponse de Rinku mais avec prévention des alertes IDE
la source