Gunnar Bittersmann: Numerische Validierung

Beitrag lesen

@@Marie:

nuqneH

<input type="text"
       onkeydown="NumVal(this.value)"
       style="width:144px" name="eingabewert" maxlength="12">

Wo ist etwas falsch?

In jeder Zeile etwas.

(1) Wenn du nur numerische Werte als Eingabe haben willst, setze @type="number", nicht "text". Sonst stirbt ein Kätzchen.

Nutzer von Geräten mit virtueller Tastatur bekommen damit eine numerische Tastaur. Eine ungültige Eingabe kann mit CSS (Pseudoklasse :invalid) kenntlich gemacht werden.

Das macht das JavaScript für inzwischen viele Besucher überflüssig. Eine serverseitige Prüfung muss ohnehin vorgenommen werden. Dennoch zum JavaScript ein paar Worte:

(2) 'keydown' wäre das falsche Event; es ist ja nicht gesagt, dass der Nutzer die Eingabe per Tastatur tätigt. 'change' wäre das richtige.

'keyCode' halte ich auch für keine gute Idee. Ist denn die Zuordnung von Tastencodes zu Zeichen auf jedem System die gleiche? Wenn schon, dann wären die *Zeichen* im Eingabefeld abzufragen, nicht die gedrückten Tasten. Von denen es – wie gesagt – gar keine geben muss.

(3) Sämtliche Darstellungsangaben sollten im Stylesheet stehen, nicht inline in @style-Attributen im Markup.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)