Autor Zpráva
vecerapl
Profil
Používám jQuery script, který při kliknutí na odkaz: <a href="#" class="btn-slide">Otevřít okno</a> .... zobrazí požadovaný DIV id="panel", kde se mám <form ...> formulář.

Můj problém je ten, že když tento fomulář odešlu method="post", tak chybové hlášky si vypisuji u formuláře ... jenže ... okno je díky znovu načtení webu (po odeslání formuláře) zavřené. Potřeboval bych nějaký JS script, který vypíši do znovunačteného webu, který mě to dané okno nechá otevřené. Poradíte?

JS:
    $(".btn-slide").click(function(){
        $("#panel").slideToggle("fast");
        $("#panel").find('input:first').focus();
        $(this).toggleClass("active"); return false;
    });
Ugo
Profil
evidentně mu přidá class "active", takže si po refreshi vypiš kód kde již tu třídu active má, případně script $(".btn-slide").addClass('active'); ještě je možnost formulář neodesílat, ale kontrolovat js
vecerapl
Profil
Pomůže pouze použít <div id="panel active">, ale bohužel daný panel ... jeho vzhled je porušen. Asi právě kvůli tomu použití active.

CSS vypadá následovně:
#header #login {position: relative; top: 50px; z-index: 200;}
#header #login #panel {display: none; position: absolute; top: 0; z-index: 100; right: 0; width: 298px; height: 140px; border: 1px solid #ccc; background: #fff url(/design/img/login-gb.png) no-repeat 0 0;}

#header #login #panel table {margin: 25px 0 0 20px; color: #333; font-size: 13px;}
#header #login #panel table label {font-weight: bold;}
#header #login #panel table label {font-weight: bold;}
#header #login #panel table td input {margin: 5px 0 0 15px; width: 176px; height: 20px; border: 1px solid #ccc;}
#header #login #panel input.btn-l {position: absolute; top: 95px; right: 9px; width: 85px; padding: 5px 15px; border: 1px solid #000; font-weight: bold; background-color: #143f77; color: #fff;}

#header #login #panel p.err-log {position: absolute; top: 8px; left: 20px; color: red; font-size: 12px;}
#header #login #panel a {position: absolute; top: 100px; left: 20px; color: #336A9D; text-decoration: underline;}
#header #login #panel .btn-close {position: absolute; top: 10px; right: 10px; width: 14px; height: 14px; cursor: pointer;}
wdesigner
Profil
Varianta 1: Při znovunačtení stránky přidat phpkem display:block" (za podmínky, že je formulář chybně vyplněný), tedy: <div id="panel" style="display:block">...

Varianta 2: Pokud bys to chtěl jen JavaScriptem, tak pokud je formulář chybně vyplněný vygenerovat někde ve stránce (phpkem) například <script> showForm = true; </script> v opačném případě (formulář byl dobře vyplněn) vygenerovat <script> showForm = false; </script>.
A do souboru, kde máš jQuery skripty, tak dej toto:
if(showForm) {
  $(".btn-slide").trigger("click");
}
(za předpokladu, že element s třídou btn-slide je ve stránce pouze jednou)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0