Ich habe das folgende HTML5-Eingabeelement:
<input type="number">
Warum ermöglicht diese Eingabe die Eingabe des Zeichens 'e' in das Eingabefeld? Es kann kein anderes Alphabetzeichen eingegeben werden (wie erwartet)
Verwenden von Chrome v. 44.0.2403.107
Um zu sehen, was ich meine: http://www.w3schools.com/html/tryit.asp?filename=tryhtml_input_number
.
In einigen Browsern können Sie außerdem +, - und mehrmals eingeben .Antworten:
Denn genau so sagt die Spezifikation, dass es funktionieren sollte. Die Zahleneingabe kann Gleitkommazahlen akzeptieren , einschließlich negativer Symbole und des Zeichens
e
oderE
(wobei der Exponent die Zahl nach deme
oder istE
):quelle
e
ist nützlich, um große Zahlen zu komprimieren, deren Eingabe sonst mühsam wäre. Als triviales Beispiel2e2 = 2*10^2 = 200
e
steht für Exponent.Wir können es so einfach machen wie unten
Aktualisierte Antwort
Wir können es noch einfacher machen, wie @ 88 MPG vorschlägt
quelle
return event.keyCode !== 69
da unnötige ternäre Operatoren vermieden werden. Auch würde Inlining nicht empfehlen.e
oderE
im FeldDer Typ der HTML-Eingabenummer erlaubt "e / E", da "e" für Exponential steht, das ein numerisches Symbol ist.
Beispiel 200000 kann auch als 2e5 geschrieben werden. Ich hoffe, das hilft Ihnen, sich für die Frage zu bedanken.
quelle
Der beste Weg , um die Verwendung einer Zahl zu erzwingen, die nur aus Ziffern besteht:
Dies vermeidet 'e', '-', '+', '.' ... alle Zeichen, die keine Zahlen sind!
So erlauben Sie nur Zifferntasten:
aber akzeptiere "Backspace" (keyCode: 8) und "Delete" (keyCode: 46) ...
quelle
quelle
Um sowohl Buchstaben
e
als auch Minuszeichen auszublenden,-
gehen Sie einfach wie folgt vor:quelle
Mit Winkel können Sie dies einschränken, um die Eingabe von e, +, -, E einzuschränken
quelle
Winkelig; mit IDE keyCode veraltete Warnung
Funktionell identisch mit der Antwort von rinku, jedoch mit Verhinderung der IDE-Warnung
quelle