|
|||||||
| Für Webmaster Alles was mit dem Erstellen zu tun hat, HTML, XML, PHP, Webspace |
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
||||
|
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: HTML-Code:
<!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
__________________
...And Justice for All ->'tallica kickz ass! ->Mein Rechenschieber ->Skype me! |
| Sponsored Links |
|
||||
|
Zitat:
Ich habe das Problem aber inzwischen gelöst. Und zwar liegt es an einer anderen Implementierung der parseInt()-Funktion in den Browsern. Opera nimmt den ersten Parameter als Zahl im Dezimalsystem an. Firefox und Internet Explorer allerdings als Oktalzahl. Das erklärt, warum es ab "08" nicht mehr funktioniert, denn diese Zahl gibt es nicht im Oktalsystem. Mit dem zweiten Parameter kann man das Zahlensystem allerdings explizit bestimmen. Die richtige Zeile lautet also folgendermaßen: Code:
if(this.value.length>2 || parseInt(this.value, 10)>15 || parseInt(this.value, 10)<0 || parseInt(this.value, 10)!=String(this.value)) {
Danke trotzdem für deine Antwort.
__________________
...And Justice for All ->'tallica kickz ass! ->Mein Rechenschieber ->Skype me! |
| Sponsored Links |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| Ansicht | |
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.



)
Linear-Darstellung
