nach klick in checkbox element einblenden, nach reload der seite bei checked auch anz

Maniac

Erfahrenes Mitglied
Ich habe folgendes vor:

eine Checkbox soll wenn man sie checked ein anderes Element anzeigen, sowei hab ich es schon geschafft. Nur jetzt folgende Besonderheit:

wenn die Seite sich refresht und die Checkbox nicht durch den User, sondern durchs PHP-Script gechecked ist, soll das versteckte Element auch angezeigt werden.

was ich bisher hab:
Code:
$(document).ready(
        function(){
            var isShow = false;
            $("#hidepass").click(function(){
                if(isShow == false){
                    $("#fieldset-passGroup").show();
                    isShow = true;
                }else{
                    $("#fieldset-passGroup").hide();
                    isShow = false;
                }
            })
                        
        });
HTML:
<style type="text/css">
#fieldset-passGroup{ display:none; }
</style>
<form>
<input type="checkbox" id="hidepass" value="1" name="hidepass" />
<fieldset id="fieldset-passGroup">
<!--        andere inputs  -->
</fieldset>
</form>
 
Interessanter wäre in diesem Zusammenhang doch wohl eher dein PHP-Skript und außerdem ist das ein Fall für das PHP-Forum.
 
nein, ich denke nicht das es was für PHP ist, sonst hätte ich es da gepostet.

Ich brauche im Grunde 2 abfragen in JS/jQuery....

einmal die mir das Fieldset hide/show beim anklicken der Checkbox..
und einmal eine überprüfung ob die Checkbox angeklickt ist, wenn ja dann das Fieldset anzeigen. Hat sicher nichts mit PHP zu tun....
 
meinst du
Code:
if($("#hidepass").checked)$("#fieldset-passGroup").show();
?
Wenn ja würd ich dir gerne auch noch eine Art "automatisierung" empfehlen.
in dem Du dem Form eine Class oder id gibst udn dann jedes input[type=checkbox] durchgehst udn wenn checked dann soll er das fieldset zeigen was direkt darauf folgt.
dann musst du nicht mehr ge nau die id's draufsetzen und kannst später einfacher neue Zeilen ranhängen.

MfG
Mark Paspirgilis
 
meinst du
Code:
if($("#hidepass").checked)$("#fieldset-passGroup").show();
?
Wenn ja würd ich dir gerne auch noch eine Art "automatisierung" empfehlen.
in dem Du dem Form eine Class oder id gibst udn dann jedes input[type=checkbox] durchgehst udn wenn checked dann soll er das fieldset zeigen was direkt darauf folgt.
dann musst du nicht mehr ge nau die id's draufsetzen und kannst später einfacher neue Zeilen ranhängen.

MfG
Mark Paspirgilis

Code:
$(document).ready(
  		function(){
	  		if($("#hidepass").checked) $("#fieldset-passGroup").show();
	  		else $("#fieldset-passGroup").hide();
    	}
  	);

hat gar keinen Effekt....
 
Tschuldigung mein Fehler:
$("#hidepass")[0].checked

Das funktioniert, vielen Dank!

Nur ein Problem:
Wenn ich jetzt mein Script mit deinem kombiniere, funktioniert das bis zum Reaload der Seite.
Nach dem Refresh ist alles so wie es sein sollte, wenn Checkbox angeklickt, dann wird das Fieldset auch angezeigt. Bis hierher super. Nur wenn ich jetzt nach dem Reload wenn das Fieldset angezeigt wird, die Checkbox wieder abwähle, passiert nichts. Wähle ich die Checkbox wieder an, wird das Fieldset ausgeblendet, also genau das Gegenteil.
Das liegt warhsceinlich an der Variable "isShow = false".
Kann man das auch irgendwie so hinbiegen das es funktioniert?

Mein Script:
Code:
$(document).ready(
  		function(){
  		
  		var isShow = false;
            $("#hidepass").click(function(){
                if(isShow == false){
                    $("#fieldset-passGroup").show();
                    isShow = true;
                }else{
                    $("#fieldset-passGroup").hide();
                    isShow = false;
                }
            })
  		
	  		if($("#hidepass")[0].checked) $("#fieldset-passGroup").show();
	  		else $("#fieldset-passGroup").hide();
    	}
  	);


Edit: Habs nun selber gelöst das ist die Lösung:
Code:
$(document).ready(
  		function(){
  		
  		var isShow = false;
  		
  		if($("#hidepass")[0].checked)
  		{
  			$("#fieldset-passGroup").show();
  			isShow = true;
  		}else{
  			$("#fieldset-passGroup").hide();
  			isShow = false;
  		}
  		
            $("#hidepass").click(function(){
                if(isShow == false){
                    $("#fieldset-passGroup").show();
                    isShow = true;
                }else{
                    $("#fieldset-passGroup").hide();
                    isShow = false;
                }
            })
  		
	  		
    	}
  	);
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück