*Alex*: scrollIntoView bei Mozilla

Hallo liebes Forum

Ich habe ein Problem, welches ich einfach nicht verstehe:
Zu einem Formular zur Eingabe von Veranstaltungsterminen habe ich ein JavaScript, welches die Eingaben beim Klicken des "submit"-Buttons mittels "onSubmit='return checkFormular()'" auf Vollständigkeit prüft.

Seit Jahren! Funktionierte immer.

Stark verkürzt funktioniert es prinzipiell so:

  
function checkFormular() {  
if(document.Eingabe.Datum.value == 0){  
alert("Bitte klicke auf das Veranstaltungsdatum");  
document.all.Schritt1.scrollIntoView(true);  
return false;  
}  
}  

Das Formular heißt "Eingabe" und enthält u.a. einen Absatz namens "Schritt1" in welchem u.a. ein Input namens "Datum" ausgefüllt wird, dessen Vorbelegung den unmöglichen Wert "0" hat. Sprich: Wurde keine Eingabe vorgenommen ist der Wert "0" und das Formular soll so nicht abgeschickt werden. Stattdessen wird der Benutzer zur Eingabe aufgefordert und an die entsprechende Stelle gescrollt.

Wie gesagt: Hat immer funktioniert.
Jetzt plötlich funktionierts nicht mehr, aber nur im Mozilla nicht.
Wenn ich die scrollIntoView-Zeile auskommentiere gehts wieder.
Was ist da los???

Im Voraus vielen Dank für Eure Hilfe.

*Alex*

P.S.:
document.all.Schritt1.scrollIntoView("true");
Also mit Anführungszeichen geht auch nicht.

  1. Hallo *Alex*,

    Was sagt die Fehlerkonsole? Und beachte, dass document.all kein gültiges javaScript ist, verwende besser z.B. document.getElementById().

    Jonathan

    1. Hi,

      Und beachte, dass document.all kein gültiges javaScript ist,

      doch, ist es. Man muss halt nur für ein entsprechendes Objekt sorgen, das im document eingehängt ist.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo Ihr zwei

        Ergebnis des Rumprobierens:
        document.getElementById("Schritt1").scrollIntoView(true);
        funktioniert.
        (Kopfkratz: Aber ich hatte es beim Erstellen des Scripts mit document.all im Mozilla getestet und es ging)

        Man muss halt nur für ein entsprechendes Objekt sorgen, das im document eingehängt ist.

        Würdest Du das etwas näher erläutern? Ich stehe glaube ich etwas auf der Leitung...

        LG *Alex*

        1. Hallo *Alex*,

          Würdest Du das etwas näher erläutern? Ich stehe glaube ich etwas auf der Leitung...

          Document.all ist laut dem Standard standardmäßig nicht vorhanden und müsste eben selbst erstellt werden. Ein paar browser haben allerdings document.all u.A. als Auflistungen aller Elemente definiert, aber das ist nicht im Standard enthalten und es funktioniert eben auch nicht immer überall. Cheatah meinte eben, dass document.all zwar gültiges js ist (das stimmt schon), nur dass das eben ein nicht standardmäßig zwingend vorhandenes Objekt ist, das man somit selbst erstellen muss.

          Jonathan

          1. Hallo Jonathan

            Document.all ist laut dem Standard standardmäßig nicht vorhanden und müsste eben selbst erstellt werden. Ein paar browser haben allerdings document.all u.A. als Auflistungen aller Elemente definiert, aber das ist nicht im Standard enthalten und es funktioniert eben auch nicht immer überall. Cheatah meinte eben, dass document.all zwar gültiges js ist (das stimmt schon), nur dass das eben ein nicht standardmäßig zwingend vorhandenes Objekt ist, das man somit selbst erstellen muss.

            Ich bin absolut für die ausführliche Variante ;-)
            Jetzt habe ich's kapiert und nehme darüber hinaus an, dass mein Firefox in einem der letzten Updates das good-will-standard Objekt document.all rausgeschmissen hat.

            Na Gut.
            So ich ändere mal eben JavaScripts (denn wenn das generell gilt, habe ich heute abend noch seeehr viel zu tun...)

            Danke und liebe Grüße Euch

            *Alex*

            1. Hi,

              Ich bin absolut für die ausführliche Variante ;-)

              ich nicht ;-)

              Jetzt habe ich's kapiert und nehme darüber hinaus an, dass mein Firefox in einem der letzten Updates das good-will-standard Objekt document.all rausgeschmissen hat.

              Nein, Firefox kennt dieses Objekt noch immer. Mozilla bzw. Seamonkey nicht.

              So ich ändere mal eben JavaScripts (denn wenn das generell gilt, habe ich heute abend noch seeehr viel zu tun...)

              Es gilt generell, dass document.all zu vermeiden ist; es sei denn, Du willst speziell den IE 4 unterstützen. Für niemanden sonst ist dieses Objekt nützlich.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
    2. Hi Jonathan

      Tolle Entdeckung diese Fehlerkonsole. Bin total geschockt: Mein CSS steckt angeblich voller Fehler. Aber keiner zu JavaScript.
      Nun muss man aber berücksichtigen, dass ich durch ein nicht ausgeführtes return false; ja einen submit durchführe, wodurch ich auf einer anderen Seite bin, welche wiederum ein anderes .js benutzt...

      getElementById()... O.K. - aber wieso muss ich alle meine JS-Routinen umschreiben, wenn es doch bisher die ganze Zeit funktioniert hat...

      Hm (weiter rumprobierend und über weiteres Brainstorm glücklich-seiend)

      *Alex*

      1. Hallo *Alex*,

        getElementById()... O.K. - aber wieso muss ich alle meine JS-Routinen umschreiben, wenn es doch bisher die ganze Zeit funktioniert hat...

        Tcha, die Suppe hast du dir selbst eingebrockt, indem du veralteten, bzw. nicht standardisierten Code benutzt hast.

        Jonathan