Jörg Reinholz: Numerische Validierung

Beitrag lesen

Funktioniert das bei euch auch?

Also WENN die Eingabe nur browserseitig ausgewertet wird, dann kannst Du eine solche Methode auch anwenden.

Aber WENN die Eingabe serverseitig (PHP, PERL, ASP...) ausgewertet wird, dann MUSST Du die Eingabe auch serverseitig validieren.

Das wirft folgendes auf:

<input type="number"> ist eine gute Idee, dann nimmt der Browser Dir die Arbeit ab. Dann brauchst Du das Skript eigentlich nicht.

Geht es Dir darum, schon bei einem "Tastendruck" zu validieren? Warum korrigierst Du die Eingabe dann nicht?
Berücksichtige "deutsche Gewohnheiten", wie das Komma als Dezimaltrennzeichen.

Was hast Du eigentlich gegen Number()?
Ich bin gespannt auf Deine Erweiterung hinsichtlich der Einschränkung auf ganze Zahlen oder Zahlenbereiche.

<!DOCTYPE html>  
<html lang="de">  <!-- das wird ausgewertet -->  
<head>  
<script type="text/javascript">
  
function NumVal2 (elem) {  
    data=elem.value;  
  
    // wenn Sprache deutsch ist kommas durch Punkte ersetzen:  
    if (document.lang='de') {  
       data=data.replace(',' , '.');  
       elem.value=data;  
    }  
    if (Number(data)==data) {  
        document.getElementById("output").innerHTML='OK';  
    }  else {  
        document.getElementById("output").innerHTML='Fehler!';  
        elem.value=data.substring(0, data.length-1);  
    }  
}
</script>  
</head>  
<body>  
<input type="text" name="eingabe"  
       onkeyup="NumVal2(this)"  
       onchange="NumVal2(this)"  
       style="width:144px" name="eingabewert" maxlength="12">  
<br />  
<div id="output"></div>  
</body>  
</html>

Jörg Reinholz