Christoph Zurnieden: Ein html Eingabefeld auf bestimmte Werte begrenze

Beitrag lesen

Hi,

nicht nur, das Du dem OP Deinen Code völlig kommentarlos vor die Füße knallst -- er ist schließlich doch kein Hund, dem man auf diese Weise einen Knochen vorwirft, oder? -- nein, Dein Code ist auch nicht gerade sauber.

<form>
<input onkeyup="check()" />

Trifft "onkeyup" auch bei C&P mit der Maus zu? "onchange" wäre da doch der passendere Signalgeber, glaube ich.

</form>

<script>
function check(){
    var num = parseInt(document.forms[0].elements[0].value)

Hier fehlt das Semikolon am Ende. War aber wohl ein Versehen, beim Rest steht's ja da.

if(isNaN(num)){
        document.forms[0].elements[0].value = 0;

Eigentlich wäre die Zuweisung ' = ""' passender. Aber Javascript nimmt's ja nicht so genau mit den Typen.
Aber ein grundsätzliches Problem:
parseInt() versteht keine Locale, ein Wert wie "6,0" wäre demnach unzulässig obwohl eigentlich korrekt.

}
    if(num > 100){
       num = 100;

Bei einer ordentliche UI verbietet sich so ein Eingriff, es ist lediglich eine Warnung auszugeben und der Wert zu ignorieren. Ändern darf man ihn aber auf keinen Fall ohne vorher die Funktion cristalBall() darauf angewendet zu haben.

Dadurch entfällt natürlich auch:

}
    document.forms[0].elements[0].value = num;
}
</script>

Da die Zahl bis 100 gehen soll, jedoch nur drei Stellen vorgesehen sind, ist anzunehmen, das negative Wert nicht erlaubt sein sollen. Die Prüfung daraufhin fehlt also.

so short

Christoph Zurnieden