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



## Maniac (10. August 2010)

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:

```
$(document).ready(
        function(){
            var isShow = false;
            $("#hidepass").click(function(){
                if(isShow == false){
                    $("#fieldset-passGroup").show();
                    isShow = true;
                }else{
                    $("#fieldset-passGroup").hide();
                    isShow = false;
                }
            })
                        
        });
```


```
<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>
```


----------



## Parantatatam (10. August 2010)

Interessanter wäre in diesem Zusammenhang doch wohl eher dein PHP-Skript und außerdem ist das ein Fall für das PHP-Forum.


----------



## Maniac (10. August 2010)

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....


----------



## Paspirgilis (10. August 2010)

meinst du

```
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


----------



## Maniac (10. August 2010)

Paspirgilis hat gesagt.:


> meinst du
> 
> ```
> if($("#hidepass").checked)$("#fieldset-passGroup").show();
> ...


 

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

hat gar keinen Effekt....


----------



## Paspirgilis (10. August 2010)

Tschuldigung mein Fehler:
$("#hidepass")[0].checked


----------



## Maniac (10. August 2010)

Paspirgilis hat gesagt.:


> 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:

```
$(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:

```
$(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;
                }
            })
  		
	  		
    	}
  	);
```


----------

