Formilarfeld - Wert kann nicht ausgelesen werden
kaepten
- javascript
0 Stefan Muenz0 kaepten
Hallo zusammen
Ich habe ein JavaScript Problem jedoch nur mit Netscape (im IE funktionierts) mit folgender Seite:
http://www.vsp-asfc.ch/kalender/ak_02_erfassen.html
Beim Speichern der Angaben werden alle Felder validiert. Als erstes, ob das Ende nach und nicht vor dem Beginn liegt. Diese Überprüfung nehme ich in der fuktion namens: "valall" -- Abschnitt mit Kommentar: "Datumvergleich". Dort habe ich ein riesending eines if else Konstruktes. Leider springt mir der Netscape gleich beim ersten Vergleich:
if (!((document.termin.jahrb.value) < (document.termin.jahre.value)))
heraus. Mit einer Alert-Box konnte ich sehen, dass document.termin.jahrb.value = null war...
Warum? Und warum hat IE kein Problem damit?
Hoffe auf einige Ideen!!!!
cheers kaepten
Hallo Kaepten
heraus. Mit einer Alert-Box konnte ich sehen, dass document.termin.jahrb.value = null war...
Warum? Und warum hat IE kein Problem damit?
document.termin.jahrb ist ein options-Array, da kann man nicht einfach document.termin.jahrb.value drauf anwenden. Du musst korrekterweise mit so einem Konstrukt arbeiten wie:
document.termin.jahrb.options[document.termin.jahrb.options.selectedIndex].value
Der IE "erahnt" es zwar auch mit einfachem value, aber im Sinne der Objekthierarchie ist das eben nicht ganz korrekt oder, naja, sagen wir, "vorauseilender Gehorsam" ;-)
viele Gruesse
Stefan Muenz
Hi Stefan
Vielen Dank für die Antwort.
document.termin.jahrb ist ein options-Array, da kann man nicht einfach document.termin.jahrb.value drauf anwenden. Du musst korrekterweise mit so einem Konstrukt arbeiten wie:
document.termin.jahrb.options[document.termin.jahrb.options.selectedIndex].value
Das hab ich jetzt mit Hilfe von SelfHTML und eines kleinen separaten Test gerade auch herausgefunden. *uff* Sorry also wegen meiner voreiligen Frage.
Letztlich hatte ich den Fehler, dass ich ein _vermutlich_ reserviertes Wort, nämlich recalc als Funktionsname verwendet hatte. Gemeinerweise lief die Prozedur immer genau einmal, aber eben nur einmal. Ein wiederholtes aufrufen funktionierte dann nicht mehr. Nach einem Umbenennen hatte ich keine Probleme mehr.
Gibts eigentlich eine Art Entwicklungsumgebung für JavaScript, damit solche Fehler nicht, oder zumindest weniger passieren können?
kaepten