Optionsschalter abfragen

Howie

Erfahrenes Mitglied
Hallo Leute

Ich verzweifle momentan an folgendes Problem. Ich habe 2 Optionsschalter. Über diese möchte ich ein Ebene ein und ausschalten. Klick ich einen Optionsschalter an so reagiert er nicht sofort. Er ist aber dann aktiviert. Erst wenn ich den anderen Optionsschalter an klicke der nicht aktiviert ist, reagiert die Routine.
Kann mir jemand Helfen ?
Hier meine Routine :
Code:
function einblenden(z) {

var wahl = new Array ("ly_filme", "ly_albums") ;

	if (z == 0)
	{
		document.getElementById(wahl[0]).style.visibility = "visible" ;		
		document.getElementById(wahl[1]).style.visibility = "hidden" ;
		document.form_wahl.opt_wahl[0].checked = true ;
		document.form_wahl.opt_wahl[1].checked = false ;
		
	}
	if (z == 1)
	{
		
		document.getElementById(wahl[1]).style.visibility = "visible" ;		
		document.getElementById(wahl[0]).style.visibility = "hidden" ;
		document.form_wahl.opt_wahl[0].checked = false ;
		document.form_wahl.opt_wahl[1].checked = true ;

	}		
}

In z ist der Wert 0 oder 1 für die Ebenen.

Danke im voraus
Howie
 
Hi,

1. Wozu setzt Du die Optionsschalter noch manuell in der Funktion? Es würde m.E. genügen, die Werte abzufragen.

2. Das Flag "z", das der Funktion übergeben wird, ist ein checked-Wert eines Optionsschalters? Bitte poste auch den Code, in dem die Funktion aufgerufen wird.

3. Ist einer der Optionsschalter defaultmäßig aktiviert? Wenn Du die Funktion mit onClick aufrufst, sollte eigentlich immer der aktuelle Wert übergeben werden.

Gruß
 
Hallo

Hier ist der Aufruf. Kann auch sein, das hier was falsch ist.
Nur rufe ich nicht über onClick sonder über onCange. Es wird ja gewechselt.
Vielleicht weißt du ja eine Lösung.

Code:
<form action="" method="post" name="form_wahl">
<table width="100%"  border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td><h3>Was soll eingegeben werden : </h3></td>
    <td><input name="opt_wahl" type="radio" onChange="einblenden(0)" checked></td>
    <td><h3>Film</h3></td>
    <td><input name="opt_wahl" type="radio" onChange="einblenden(1)" value=""></td>
    <td><h3>Album</h3></td>
  </tr>
</table>
</form>

Howie
 
Hi,

verwende onClick (dann wird die Funktion auch beim ersten Mal aufgerufen), gib den Optionsschaltern Values (hier: true und false) und übergib der Funktion das aufrufende Objekt:
PHP:
<script language="JavaScript" type="text/javascript">
function einblenden(obj) {
    var z = eval(obj.value);
    var wahl = new Array ("ly_filme", "ly_albums") ;

    if (z)
    {
        document.getElementById(wahl[0]).style.visibility = "visible" ;		
        document.getElementById(wahl[1]).style.visibility = "hidden" ;
    }
        else
    {
        document.getElementById(wahl[1]).style.visibility = "visible" ;		
        document.getElementById(wahl[0]).style.visibility = "hidden" ;
    }		
}
</script>
<body>
<form action="" method="post" name="form_wahl">
<table width="100%"  border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td><h3>Was soll eingegeben werden : </h3></td>
    <td><input name="opt_wahl" type="radio" onClick="einblenden(this)" value=true checked></td>
    <td><h3>Film</h3></td>
    <td><input name="opt_wahl" type="radio" onClick="einblenden(this)" value=false></td>
    <td><h3>Album</h3></td>
  </tr>
</table>
</form>

</body>
Das Setzen der Werte in der Funktion kannst Du weglassen, die Optionsfelder ändern sich ja von selbst beim Anklicken ;)

Gruß
 
Hm

Irgend etwas ist aber noch nicht richtig. Ich habe es einfach mal so übernommen.
Sowie es ausschaut springt er die Routine nicht an. Was wird eigentlich in obj übergeben ? Ist es der Name vom Schalter oder ist es der eintrag bei value ?

Howie
 
Hallo

Sorry, war mein Fehler beim einbinden. War ein bischen blind auf den Augen.
Somit vielen Dank, funktioniert wirklich super :-) .

Gruß Howie
 

Neue Beiträge

Zurück