Status (display:block) eines Layers behalten

messmar

Erfahrenes Mitglied
Guten Morgen zusammen,

ich versuche den Status eines per JS eingeblendeten DIV, bei einer Fehlermeldung (alert),
zu behalten. d.h. bei einem Fehler, muss der DIV sichtbar bleiben und nicht ausgeblendet werde, wie beim ersten Aufruf der Seite.

ich bekomme es mit dem folgenden Code leider nicht hin:

Für jede Hilfe oder Tipp, bin ich sehr Dankbar.

Gruß
Messmar

Code:

HTML:
<script>
  var keepLayerState = function (){
      document.getElementById('specialAndZweiPrDr').style.display = 'none';
      document.getElementById('passwordIndex').style.display = 'block';
  };
  
  
  function getEamilForPassword (passwordEmail){
      var mailForNewPassWd = passwordEmail.uemail.value;
      if (!mailForNewPassWd || mailForNewPassWd.match(/^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) == null){
          alert('mail');
          
          return false;
          window.onload = keepLayerState;
      }
  }
</script>

die Layers/Divs sind folgendermaßen definiert:

HTML:
<ul id="passwordIndex" style="display:none;">
     <li>Felder und Text... etc.</li>
     <li>Felder und Text... etc.</li>
</ul>

<ul id="registerIndexHidden">
     <li>Text... etc.</li>
     <li> Text... etc.</li>
</ul>

Und noch einen Hinweis: ich bekomme weder über die FireFox Konsole noch über IE7 eine Falhermeldung.
 
Zuletzt bearbeitet:
Moin,

wo und wie rufst du denn getEamilForPassword() auf?

Rein von der Syntax her ist der Aufbau dieser Funktion falsch, denn mit return verlässt man eine Funktion, alles was danach kommt wird ignoriert, so auch dies :
Code:
window.onload = keepLayerState;
 
Hi Sven,

danke schon Mal,

wo und wie rufst du denn getEamilForPassword() auf?

beim senden des Formulars:
HTML:
 onsubmit="getEamilForPassword(this);"
denn mit return verlässt man eine Funktion, alles was danach kommt wird ignoriert

habe ich mir auch gedacht, aber umgekehrt funktionierte auch nicht... ich hatte es am Anfang so:

HTML:
window.onload = keepLayerState;
return false;

Ich muss aber darauf hinweisen, dass der alert mit der entsprechenden Fehlermeldung funkt., aber
dann verschindet der Layer/Div, was eigentlich in dem Fall nicht passieren darf.

Gruß
Messmar
 
Zuletzt bearbeitet:
beim senden des Formulars:
HTML:
 onsubmit="getEamilForPassword(this);"


Naja...beim Senden eines Formulars ist ja idR. das Formular un der Rest schon geladen, somit feuert kein onload-Event mehr, über den du etwas steuern könntest.

Rufe die Funktion einfach so auf:
Code:
keepLayerState();
return false;

Gehe aber davon aus, dass JS, sobald das Formular gesendet wurde(und dadurch die aktuelle Seite verlassen), keine Kenntnis mehr von alledem hat, was vorher geschah.
 
Hi Sven,

danke.. hat es funkt.
Rufe die Funktion einfach so auf:
Code:
keepLayerState();
return false;

Aber ich habe gerade einen Fehler von mir endeckt und zwar bei dem Aufruf der Funktion, habe ich den
HTML:
return
vergessen und es funkt. auch damit.

Also der Aufruf muss folgendermaßen sein:
HTML:
return getEamilForPassword(this)

Vielen Dank und Gruß
Messmar
 

Neue Beiträge

Zurück