Maximale und minimale Werte in einem Textfeld

8

Ich habe ein Textfeld. Gibt es einen Weg, wo der höchste Wert, den der Benutzer eingeben kann, 100 und der niedrigste Wert 0 ist?

Wenn der Benutzer also eine Zahl von mehr als 100 eingibt, ändert er automatisch den Wert mit einer keyup () - Funktion auf 100, und wenn der Benutzer eine Zahl kleiner als 0 eingibt, wird er als 0 angezeigt?

Mein Textfeld ist unten:

%Vor%

Kann dies mit JavaScript gemacht werden?

    
BruceyBandit 06.01.2012, 17:27
quelle

9 Antworten

21

Hier ist eine einfache Funktion, die das tut, was Sie brauchen:

%Vor%

Wenn die Eingabe nicht numerisch ist, wird sie durch eine Null ersetzt

    
Nikoloff 06.01.2012, 17:36
quelle
14

Wenn Sie mit HTML5 in Ordnung sind, kann es ohne JavaScript-Code durchgeführt werden ...

%Vor%

Sonst etwas wie ...

%Vor%

Dies setzt nur die Werte zurück, wenn der Eingang den Fokus verliert, und löscht alle Eingaben, die nicht als Ganzzahl analysiert werden können ...

OBLIGATORISCHE WARNUNG

Sie sollten immer eine angemessene serverseitige Validierung von Eingaben durchführen, unabhängig von der clientseitigen Validierung.

    
jondavidjohn 06.01.2012 17:29
quelle
4

Ich würde normalerweise so etwas tun (onblur), aber es könnte an jedes der Ereignisse angehängt werden:

%Vor%     
Evert 06.01.2012 17:54
quelle
3

Es hängt von der Art der Zahlen ab und was Sie erlauben werden. Zahlen mit Dezimalzahlen zu verarbeiten ist schwieriger als einfache Ganzzahlen. Situationen, in denen mehrere Kulturen erlaubt sind, sind wieder komplizierter.

Die Grundlagen sind diese:

  • Behandeln Sie das "keypress" -Ereignis für das Textfeld. Wenn ein unzulässiges Zeichen gedrückt wurde, brechen Sie die weitere Verarbeitung des Ereignisses ab, damit der Browser sie nicht in das Textfeld einfügt.
  • Bei der Handhabung von "keypress" ist es oft nützlich, einfach die mögliche neue Zeichenfolge basierend auf dem gedrückten Schlüssel zu erstellen. Wenn die Zeichenfolge eine gültige Nummer ist, lassen Sie die Drucktaste zu. Andernfalls werfen Sie den Tastendruck. Dies kann stark die Arbeit vereinfachen.
  • Behandeln Sie das Ereignis "keydown" möglicherweise, wenn Sie mit Schlüsseln zu tun haben, die "keypress" nicht unterstützt.
John Fisher 06.01.2012 17:36
quelle
2

Ja, kann es! Sie könnten zuerst überlegen, den Wert von maxlength auf 3 zu setzen und dann einen Event-Handler für das keyup-event zu schreiben.

Die Funktion kann die Benutzereingabe mit regex oder parseInt auswerten, um die Benutzereingabe zu validieren und auf einen beliebigen Wert zu setzen, wenn die Eingabe falsch ist.

    
Mithrandir 06.01.2012 17:32
quelle
1

Wenn Sie nicht HTML5 verwenden, ist dies eine ziemlich einfache JavaScript-Formularüberprüfung.

Seitennotiz - Ich würde den Wert im Unschärfen-Ereignis anstelle von keyup auf 0 setzen (als Benutzer würde ich den Text während der Eingabe ändern würde nervig zu keinem Ende sein).

    
Tim 06.01.2012 17:32
quelle
0

Setzen Sie Attribute in CodeBehind

%Vor%

Ergebnis:

%Vor%

Von jQuery

%Vor%     
Ehsan 10.02.2014 19:36
quelle
0

Es ist ganz einfach, Sie können den Bereichsvalidator verwenden

%Vor%

andernfalls können Sie Javascript verwenden

%Vor%     
Ajitabh Mohanty 01.02.2017 12:26
quelle
0

Ссылка

%Vor%

oder besser

Ссылка

%Vor%     
asdasd 08.02.2018 01:49
quelle

Tags und Links