Wie kann ich die Eingabe auf ein Textfeld beschränken, sodass nur Zahlen und der Dezimalpunkt akzeptiert werden?
javascript
html
TinTin
quelle
quelle
isNaN(this.textbox.value)
?Antworten:
Das funktioniert wirklich!
quelle
&& charCode != 190 && charCode != 110 && (charCode > 105 || charCode < 96)
Ist es das, wonach du suchst?
Ich hoffe, es hilft.
BEARBEITEN: Ich habe mein Beispiel oben so bearbeitet, dass es nur einen Punkt geben kann, dem mindestens eine Ziffer vorangestellt ist und auf den mindestens eine Ziffer folgt.
quelle
Die akzeptierte Lösung ist nicht vollständig, da Sie mehrere '.' Eingeben können, z. B. 24 .... 22..22. Mit einigen kleinen Änderungen funktioniert es wie vorgesehen:
quelle
ondrop="return false;" onpaste="return false;" oncontextmenu="return false;"
scheint ausreichend zu seinHier ist eine weitere Lösung, die Dezimalzahlen zulässt und die Nachkommastellen auf 2 Dezimalstellen begrenzt.
quelle
if
fehlt ein großgeschriebenes "C"..
), Striche ( )-
und den Buchstaben zulässt ,e
wenn Text in das Feld eingefügt oder dort abgelegt wird. Das HTML-Element zeigt außerdem zwei Pfeile zum Inkrementieren und Dekrementieren der Anzahl in Chrome an. Mit der Dekrementierungstaste kann die Zahl unter Null fallen.Alle hier vorgestellten Lösungen verwenden einzelne Schlüsselereignisse. Dies ist sehr fehleranfällig, da die Eingabe auch über copy'n'paste oder drag'n'drop erfolgen kann. Auch einige der Lösungen beschränken die Verwendung von Nicht-Zeichen - Tasten wie
ctrl+c
,Pos1
usw.Ich schlage vor, anstatt bei jedem Tastendruck zu überprüfen, ob das Ergebnis in Bezug auf Ihre Erwartungen gültig ist.
Das
oninput
Ereignis wird unmittelbar nach einer Änderung im Textbereich und vor dem Rendern ausgelöst.Sie können die RegEx auf jedes Zahlenformat erweitern, das Sie akzeptieren möchten. Dies ist weitaus wartbarer und erweiterbarer als die Überprüfung auf einzelne Tastendrücke.
quelle
Suchen Sie so etwas?
quelle
Sie müssen diese Methode nur in Jquery anwenden, und Sie können Ihr Textfeld so validieren, dass nur Zahlen mit einer Dezimalzahl akzeptiert werden.
Eine funktionierende Demo finden Sie hier
quelle
Für alle, die hier so stolpern wie ich, ist hier eine von mir geschriebene jQuery 1.10.2-Version, die für mich sehr gut funktioniert, wenn auch ressourcenintensiv:
quelle
Eine kleine Korrektur zu @ rebiscos brillanter Antwort, um die Dezimalstelle perfekt zu validieren.
quelle
Wenn Sie es für Float-Werte möchten,
Hier ist die Funktion, die ich benutze
quelle
quelle
quelle
Hier ist ein Skript, das Ihnen helfen kann:
quelle
Angenommen, Ihr Textfeldfeldname lautet.
Income
Rufen Sie diese Validierungsmethode auf, wenn Sie Ihr Feld validieren müssen:
quelle
Erweiterung der Antwort von @ rebisco. Dieser folgende Code erlaubt nur Zahlen und ein einzelnes '.' (Punkt) im Textfeld.
quelle
Bessere Lösung
quelle
Ausgehend von @rebisco Antwort:
Erlaubt nur dieses Format: 123123123 [.121213]
Demo hier Demo
quelle
Hoffe es wird für dich funktionieren.
quelle
Der folgende Code hat bei mir funktioniert
Das Eingabefeld mit dem Ereignis "onkeypress" lautet wie folgt
Die Funktion "isNumberKey" lautet wie folgt
quelle
Ich habe festgestellt, dass bei allen hier angegebenen Antworten die Dinge nicht funktionieren, wenn wir einen Teil des Textes im Textfeld auswählen und versuchen, diesen Teil zu überschreiben. Also habe ich die folgende Funktion geändert:
quelle
Für Dezimalzahlen und auch für Negativzahlen mit 2 Stellen für Dezimalstellen nach dem Punkt ... Ich habe die Funktion geändert zu:
quelle
Eine alternative Möglichkeit, die Eingabe auf ein Textfeld zu beschränken, sodass nur Zahlen und der Dezimalpunkt akzeptiert werden, besteht darin, Javascript in der HTML-Eingabe zu verwenden. Das funktioniert bei mir:
- Akzeptiert--
9
9,99
--Nicht akzeptieren--
9.99.99
ABC
quelle
Es erlaubt nur numerische und Sie können "." für dezimal.
quelle
Das funktioniert gut.
quelle
Beste und funktionierende Lösung mit Pure-Javascript-Beispiel Live-Demo: https://jsfiddle.net/manoj2010/ygkpa89o/
quelle
Ich arbeite selbst an dem Thema, und das habe ich bisher. Dies funktioniert mehr oder weniger, aber aufgrund der neuen Wertprüfung ist es unmöglich, danach ein Minus hinzuzufügen. Erlaubt auch kein Komma als Tausendertrennzeichen, nur Dezimal.
Es ist nicht perfekt, könnte aber einige Ideen geben.
Erlaubt:
11 11 .245 (im Controller, der auf Unschärfe auf 1111.245 formatiert ist)
11,44
-123.123
-1 014
0123 (formatiert auf Unschärfe bis 123)
erlaubt nicht:
! @ # $ / *
ABC
11.11.1
11,11.1
.42
quelle
quelle
Ich weiß, dass diese Frage sehr alt ist, aber wir bekommen oft solche Anforderungen. Es gibt viele Beispiele, aber viele scheinen zu ausführlich oder komplex zu sein für eine einfache Implementierung zu sein.
Siehe diese https://jsfiddle.net/vibs2006/rn0fvxuk/ und verbessern Sie sie (wenn Sie können). Es funktioniert mit IE, Firefox, Chrome und Edge Browser.
Hier ist der Arbeitscode.
quelle
Ich habe mich dazu entschlossen, dieses
oninput
Problem zu lösen, um das Problem beim Einfügen von Tastaturen, Einfügen von Mäusen und Tastenanschlägen zu lösen. Übergeben Sie true oder false, um die Validierung von Dezimalstellen oder Ganzzahlen anzuzeigen.Es sind im Grunde drei Schritte in drei Einzeiler. Wenn Sie die Dezimalstellen nicht abschneiden möchten, kommentieren Sie den dritten Schritt. Anpassungen für die Rundung können auch im dritten Schritt vorgenommen werden.
quelle
Sie können die vom Benutzer einzugebenden Werte einschränken, indem Sie den ASCII-Wertebereich angeben.
Beispiel : 48 bis 57 für numerische Werte (0 bis 9)
quelle