thomas: Reset Values

hallo

Komisches Problem. Habe ein Forumlar mit u.a. einem Drop Down, welches bei Änderung das ganze Formular nochmals aufruft. Nun leider verschwinden dann in den anderen Feldern die bereits getätigten Einträge. Mein JS-Progrämchen 'speichert' nun vor dem Reload die Werte und setzt sie dannach wieder ein. Nun komischerweise funktioniert das nur wenn ich dazwischen ein Alert mit dem temporär gespeicherten Wert ausgebe (was ich während der Entwicklung zur Kontrolle gemacht habe). Lösche ich diesen Alert, gehts nicht mehr.

Hat jemand eine Ahnung worin das liegen könnte?

Hier meine JS-Funktion (Original von Dreamweaver):
function MM_jumpMenu(targ,selObj,restore,formular){ //v3.0
 //alert(formular);

var on1 = m1b.u.selectedIndex; //rubriken
   var t = m1b.cTitel.value;
   //alert (on1);

eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  //if (restore) selObj.selectedIndex=0;

alert("hallo");
     m1b.u.selectedIndex = on1;  //restore Rubrik
     m1b.cTitel.value = "hallo";

}

Vielen Dank für Tipps.
Beste Grüsse
Thomas

  1. hi,

    Nun komischerweise funktioniert das nur wenn ich dazwischen ein Alert mit dem temporär gespeicherten Wert ausgebe (was ich während der Entwicklung zur Kontrolle gemacht habe). Lösche ich diesen Alert, gehts nicht mehr.

    oftmals ein anzeichen für ein timing-problem.

    die HTML-elemente, auf die du zugreifen möchtest, sind vermutlich zum zeitpunkt der scriptausführung noch nicht existent.
    wenn du den alert einbaust, "wartet" dein script aber ein kleines bisschen, bis du die meldung weggeklickt hast, und dann sind vermutlich auch die elemente schon fertig geladen und gerendert worden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hi wahsaga

      wenn du den alert einbaust, "wartet" dein script aber ein kleines bisschen, bis du die meldung weggeklickt hast, und dann sind vermutlich auch die elemente schon fertig geladen und gerendert worden.

      dachte ich mir auch. Was gibts es für eine Lösung? Gibt es ein Befehl, der kurz ein Stopp macht?

      Vielen Dank & Gruss
      Thomas

      1. hi,

        dachte ich mir auch. Was gibts es für eine Lösung?

        oftmals ist es am einfachsten, solche funktionen mit dem eventhandler onLoad aufzurufen; der "feuert" erst, wenn die seite fertig geladen worden ist.

        Gibt es ein Befehl, der kurz ein Stopp macht?

        window.setTimeout gäbe es, um eine aktion zeitverzögert aufzurufen; ist hier aber weniger geeignet (wie lange das fertig laden und parsen des dokumentbaumes dauert weißt du nicht vorher - onLoad bietet dir aber eine einfache möglichkeit, genau zu diesem zeitpunkt zu reagieren).

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }