# Das Aktivieren eines Radiobuttons von einem Radiobutton bevor abhängig machen.



## zelium (13. Juli 2004)

Hallo, ich suche eine Möglichkeit durch anklicken eines Radiobuttons einen auf  "disabled=true" gesetzen Radiobutton wieder aktiv zu machen. Habe mit verschiedenen Sachen probiert die  ich u.A. auch hier in den Foren gesehen habe (am Bsp. vom Textfeld) hat aber nicht wirkich funktioniert 

Weiss einer Bescheid? Ist es überhaupt möglich?

Bin für jeden Tip dankbar!


----------



## xthetronx (13. Juli 2004)

Hi zelium,

schau mal ob Du mit diesem Code etwas anfangen kannst.

Gruß

Torsten


```
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<link rel="stylesheet" href="hp_mm.css" type="text/css">
<html>
<head>
	<title>Intelligentes Formular</title>
</head>

<body>
<b>Intelligentes Formular</b>
<p><table width=100% cellpadding=0 cellspacing=0 border=0><tr><td valign=top><table border="0" width="100%">
  <form action="" method="post">
    <tr> 
      <td align="right"> 
        <input type="checkbox" name="a1" value="ON" checked>
      </td>
      <td>&nbsp; Auswahl 1</td>
    </tr>
    <tr> 
      <td align="right"> 
        <input type="checkbox" name="a2" value="ON"          
                           onpropertychange="
                           af21.setAttribute('disabled', !getAttribute('checked')),
                           af22.setAttribute('disabled', !getAttribute('checked')),
                           ua1.setAttribute('disabled', !getAttribute('checked')),
                           fYear.setAttribute('disabled', !getAttribute('checked')),
                           fMon.setAttribute('disabled', !getAttribute('checked')),
                           fDay.setAttribute('disabled', !getAttribute('checked')),
                           fHour.setAttribute('disabled', !getAttribute('checked')),
                           fMin.setAttribute('disabled', !getAttribute('checked')),
                           fSec.setAttribute('disabled', !getAttribute('checked'))">
      </td>
      <td>&nbsp;&nbsp;Auswahl 2</td>
    </tr>
    <tr> 
      <td></td>
      <td>&nbsp;&nbsp; 
        <input type="checkbox" name="af21" value="ON" disabled>
        &nbsp; Feature 2.1</td>
    </tr>
    <tr> 
      <td></td>
      <td>&nbsp;&nbsp; 
        <input type="checkbox" name="af22" value="ON" disabled>
        &nbsp; Feature 2.2</td>
    </tr>
    <tr> 
      <td></td>
      <td> <fieldset> 
        <input type="radio" name="R1" value="create_date" checked>
        erstellt oder 
        <input type="radio" name="R1" value="last_modified">
        bearbeitet&nbsp;&nbsp;&nbsp; 
        <input type="radio" name="R2" value="< " checked>
        vor oder 
        <input type="radio" name="R2" value="> ">
        nach<br>
        &nbsp; Jahr: 
        <input type="text" name="fYear" size="4" maxlength="4" value= "2002"disabled>
        Monat: 
        <input type="text" name="fMon" size="2" maxlength="2" value= "02"disabled>
        Tag: 
        <input type="text" name="fDay" size="2" maxlength="2" value= "26"disabled>
        &nbsp;, HH: 
        <input type="text" name="fHour" size="2" maxlength="2" value= "15"disabled>
        MM: 
        <input type="text" name="fMin" size="2" maxlength="2" value= "57"disabled>
        SS: 
        <input type="text" name="fSec" size="2" maxlength="2" value= "00"disabled>
        </fieldset> </td>
    </tr>
    <tr> 
      <td></td>
      <td>&nbsp;&nbsp; 
        <input type="checkbox" name="ua1" value="ON"  disabled>
        Unterauswahl 1</td>
    </tr>
    <tr> 
      <td colspan=2> 
        <input name="weg" type="submit" value="weg damit!">
        <input type="hidden" name="Pg_reused" value="1">
      </td>
  </form>
</table>
<p>Hierbei werden bestimmte Eingabemöglichkeiten in Abhängigkeit von einer Checkbox ein- und ausgeblendet.
<p>
<form>
<input type="button" value="Quelltext" onclick='window.location = "view-source:" + window.location.href'>
</form>
</td>
<td>&nbsp;</td>
<td valign=top>
</td>
</tr></table>
<p>
<br><hr align="center" size="1" width="50%">
<center>
meine eMail: <a href="mailto:js@webaid.de" class=linkint>js@webaid.de</a><br>
meine Homepage: <a href="http://www.mywebaid.de" target="_top" class=linkint>http://www.mywebaid.de</a><br>
</center>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript" src="../ms.js">
<!--
//-->
</SCRIPT>

</body>
</html>
```


----------



## zelium (14. Juli 2004)

Danke xthetronx  für deine Antwort.
Leider hat es nicht funktioniert 
Die "disabled"-Buttons bleiben grau und unten im Browser kommt das ständige 
"Fehler auf der Seite" .

Ich hätte eigentlich mehr an einen JScript gedacht, etwa sowas:

<script language="javascript" type="text/javascript">

function radioAktivieren()
{
if(document.form.radiobutton.checked)
	{
	document.form.radiobutton10.checked=true;
	}
else
	{
	document.form.radiobutton10.checked=false;
	}
}

und bei den nötigen Radio´s dann den Funktionsaufruf mittels "onClick" durchführen.
Problem dabei: Das Script wird ausgeführt und es kommt keine Fehlermeldung ABER die Radiobuttons ändern sich auch nicht 

Woran könnte es liegen? Im Formular gibt´s auch noch mehr Radiobuttons - aber das sollte eigentlich nicht stören.. Die sind ja nicht mitimplementiert..

Soll ich da vielleicht irgendwelche Parameter bei der Funktion selbst übergeben, wenn - ja die Value-Parameter?


----------



## Samuel (14. Juli 2004)

poste mal was du bisher hast.

grüße Samuel


----------



## zelium (14. Juli 2004)

<head>
<script language="javascript" type="text/javascript">

function radioAktivieren()
{
if(document.form.radiobutton1.checked)
{
document.form.radiobutton10.disabled=false;
}
else
{
document.form.radiobutton10.disabled=true;
}
}
</script>

<body>

 <input type="radio" name="radiobutton1"  value="x1" >
 <input type="radio" name="radiobutton1"  value="x2" >

 <input type="radio" name="radiobutton10"  value="y1"  disabled="disabled" onClick="javascript:radioAktivieren();">

 <input type="radio" name="radiobutton10"  value="y2"  disabled="disabled" onClick="javascript:radioAktivieren();">
</body>

Erkärung: 

ich habe es mir so gedacht: erst wenn man den Radiobutton 'radiobutton1' angeklickt hat, wird erst der Radiobutton 'radiobutton10' auf disabled=false gesetzt. Ansonten soll er ausgegraut bleiben.


----------



## Samuel (14. Juli 2004)

Achte bitte auf:

DOCTYPE
HTML-Tags (oben & unten)
FORM-Tag
language="JavaScript" ist nicht nötig
Das wenn  Inputfelder die selben Namen haben JavaScript sie als Array behandelt.
 einrücken 

grüße Samuel


----------



## zelium (14. Juli 2004)

Beantwortet nicht ganz meine Fragen, aber trotzdem danke. 

Eigentlich habe ich nur den wichtigsten Teil des Codes reingeschrieben.


----------



## zelium (14. Juli 2004)

*weiss noch jemand Rat?*

Kann mir sonst jemand helfen? Sieht jemand spontan einen Fehler in diesem Skript:

<script language="javascript" type="text/javascript">
function radioAktivieren()
{
if(document.form.a.checked)
	{
	document.form.z.disabled=false;
	}
else
	{
	document.form.z.disabled=true;
	}
}
</script>

Aufruf im Body durch:  

<input type="radio" id="a" name="a" value="bla" onClick="javascript:radioAktivieren();">


----------



## Tobias Menzel (14. Juli 2004)

Hi,

Folgendes funktioniert:
	
	
	



```
<script language="javascript" type="text/javascript">

function radioAktivieren()
{
if(document.getElementById("radio1").checked)
{
document.getElementById("radio2").disabled=false;
}
else
{
document.getElementById("radio2").disabled=true;
}
}
</script>

<body>
<input type="radio" name="radio1" value="x1" onClick="radioAktivieren()">
<input type="radio" name="radio2" value="y1" disabled="disabled">
</body>
```
Da der Button ja ferngesteuert werden soll, nehme ich an, dass das OnClick-Ereignis in den aktivierten Button gehört.
Zudem hattest Du in der JS-Funktion ein Formular angegeben - auf der Seite was allerdings kein Formular zu sehen.
"getElementById()" hat sich bei mit bislang als die zuverlässigste Methode erwiesen, Objekte im Dokument anzusprechen.  

Gruß


----------



## zelium (14. Juli 2004)

Du hast mich durchschaut 

Es funktioniert wunderprächtig! Nur ein Problem noch: ich habe insgesamt 4 Radiobuttons mit verschiedenen values. [radio1, value="x"; radio2, value="x1"; radio3, value="y"; radio4, value="y1";
Zwei davon(radio1, radio2; aktiv) aktivieren die anderen zwei(radio3, radio4; disabled). 
So wie es jetzt ist wird nur der dritte durch den ersten aktiviert [selbstverständlich]

Ich möchte das radio1 den radio3 und radio2 den radio4 aktivieren.

Ist es irgendwie über die Values zu erreichen? Wenn ja wie?


----------



## zelium (16. Juli 2004)

Mein besonderer Dank geht an dieser Stelle an *Datic *der sich wirklich in die Sache reingehängt und dieses Script entworfen hat!    

So nach langen hinunher - hier ist eine HTML-Version von einem Script das den anderen vielleicht  hilft:


```
<html>
<head>
<meta´s..>

<script language="javascript">

function radioAktivieren(obj1, obj2)
{
  document.getElementById(obj1).disabled=document.getElementById("radiobutton1").checked;
  document.getElementById(obj2).disabled=document.getElementById("radiobutton1").checked;
}

</script>

</head>

<body>

 <td width="5%" valign="top" height="29"><font face="Arial, Helvetica, sans-serif" size="2">

  <input name="radiobutton" type="radio" id="radiobutton1" onClick="javascript:radioAktivieren('radiobutton20','radiobutton21');" value="x" checked>
                      </font></td>

<td width="29%" valign="top" height="29"><font face="Arial, Helvetica, sans-serif" size="2">Ausgeschaltet<br>
  </font></td>


 <td width="5%" valign="top"><font face="Arial, Helvetica, sans-serif" size="2">

  <input name="radiobutton" type="radio"  id="radiobutton2" onClick="javascript:radioAktivieren('radiobutton20','radiobutton21');" value="x">
  Eingeschaltet</font><font face="Arial, Helvetica, sans-serif" size="2"><br>
  </font></td>
                    <td valign="top" width="29%">&nbsp;</td>


 <td width="6%" valign="top"><font face="Arial, Helvetica, sans-serif" size="2">
                      <input type="radio"  name="radiobuttonB" id="radiobutton20" value="Y" disabled="true">
                      </font></td>



 <td width="6%" valign="top"><font face="Arial, Helvetica, sans-serif" size="2">
                      <input type="radio"  name="radiobuttonB" id="radiobutton21" value="Y1" disabled="true">
                      </font></td>



</body>
</html>
```

Erklärung: Dieses Script schaltet Radiobuttons ein und aus (je nach dem wie man es braucht).
Den Rest sieht man glaub´ ich im Code


----------

