Quidoff
Lieutenant
- Registriert
- Feb. 2005
- Beiträge
- 897
Hallo,
ich habe Eingabefelder auf einer Seite, in die man nur die Zahlen von 0 bis 15 eingeben kann.
Im Internet Explorer und im Firefox tritt das Phänomen auf, dass die Eingabe "08" und "09" verworfen wird. Die Zahlen "00" bis "07" funktionieren aber.
Das ist mein Code:
Die Eingabe ist also auf jeden Fall falsch, wenn die Länge des eingegebenen String größer ist als 2 (man soll also auch nur "00" bis "15" eingeben können und nicht "000" bis "015"). Es ist auch falsch, wenn die Zahl größer als 15 oder kleiner als 0 ist. Mit der letzten Bedingung prüfe ich, ob der Zahlenwert der Eingabe mit der Eingabe an sich übereinstimmt. Wenn man z.B. "1a" eingibt, dann ist der Zahlenwert "1", aber das entspricht nicht der Eingabe.
Wie gesagt ist diese letzte Bedingung wohl für die Eingabe von "08" und "09" im Internet Explorer und Firefox wahr.
Warum funktioniert es bei dieses Eingaben nicht?
//edit
Hier könnt ihr den Code als Seite sehen. In Opera 9.1 tritt das Problem nicht auf.
Mfg
Quidoff
ich habe Eingabefelder auf einer Seite, in die man nur die Zahlen von 0 bis 15 eingeben kann.
Im Internet Explorer und im Firefox tritt das Phänomen auf, dass die Eingabe "08" und "09" verworfen wird. Die Zahlen "00" bis "07" funktionieren aber.
Das ist mein Code:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>String-Zahlenumwandlung<title>
</head>
<body>
<form action="" method="get">
Deutsch: <input name="deutsch" type="text" /><br/>
Mathe: <input name="mathe" type="text" /><br/>
Englisch: <input name="englisch" type="text" />
</form>
<script type="text/javascript">
<!--
var inputs = document.getElementsByTagName('form')[0].getElementsByTagName('input');
for(var i=0; i < inputs.length; i++) {
var input = inputs[i];
if(input.type=="text") {
input.onblur = function() {
if(this.value.length>2 || parseInt(this.value)>15 || parseInt(this.value)<0 || parseInt(this.value)!=String(this.value)) {
this.value='';
}
}
}
}
//-->
</script>
</body>
</html>
Wie gesagt ist diese letzte Bedingung wohl für die Eingabe von "08" und "09" im Internet Explorer und Firefox wahr.
Warum funktioniert es bei dieses Eingaben nicht?
//edit
Hier könnt ihr den Code als Seite sehen. In Opera 9.1 tritt das Problem nicht auf.
Mfg
Quidoff
Zuletzt bearbeitet:
(Link hinzugefügt)