JavaScript läuft im IE nicht richtig

bennipur

Grünschnabel
Hallo!

Ich bastel zur Zeit an einem Anmeldeformular.
Der User kann eine Rechtsform auswählen (Radiobutton) und anschließend erscheint eine Listenfeld, wo man seine Auswahl spezieller machen kann(z.B. Rechtsform "Kapitalgesellschaft" Speziell "AG").

Das ganze funktioniert im Firefox richtig, im IE aber nicht.
Woran liegt das?

Danke schon mal für die Hilfe!

Hier das Skript

Code:
<script type="text/javascript">
<!--
	function rechtsform()
		{
			// Variabeln, die sich die Eigenschaften der Elemente besorgen
			var reform_sicht1 = document.getElementById('rechtsform1');
			var reform_sicht2 = document.getElementById('rechtsform2');
			
			// Variablen, die die Radiobuttons als markiert setzen
			var aktiv_reform_1 = document.forms[0].elements[5].checked;
			var aktiv_reform_2 = document.forms[0].elements[6].checked;
			
			
			// if Prüfung
                        // Sind die Radiobuttons ausgewählt?
                        // Ja, dann setze display auf block, das andere div auf display="none"
			
			
			if (aktiv_reform_1 == true || aktiv_reform_2 == false)
				{
					reform_sicht1.style.display = 'block';
					reform_sicht2.style.display = 'none';
				}
			else if (aktiv_reform_1 == false || aktiv_reform_2 == true)
				{
					reform_sicht1.style.display = 'none';
					reform_sicht2.style.display = 'block';
				}
			else 
				{
					alert("nix");
				}
				
		}
//-->
</script>

Hier der Radiobutton

HTML:
<!-- Vorheriger Code-->
       <tr>
          <td>Rechtsform:</td> 
          <!-- Element 7, 8 -->
          <td colspan="2" ><div id="rechtsform1" style="display:none; overflow:auto;"><label>
              <select name="PersGesLi" class="formContent" id="PersGesLi">
              <option selected="selected">Einzelunternehmen</option>
              <option>KG</option>
              <option>e.K.</option>
              <option>oHG</option>
              <option>GbR</option>
              <option>GmbH &amp; Co KG</option>
                                    </select></label></div>
             <div id="rechtsform2" style="display:none;  overflow:auto;">
            <label><select name="KapGesLi" class="formContent" id="KapGesLi">
              <option>AG</option>
              <option selected="selected">GmbH</option>
            </select>
          </label></div>          </td>
        </tr>
<!-- weiterer Code -->


Und hier Eine genauere Beschreibung des Fehlers:

Klicke ich im Firefox auf den Radiobutton Personengesellschaft, so erscheint die Listen-Auswahl zur Personengesellschaft.

Mache ich das ganze im IE, passiert nichts. Klicke ich dann auf den Radiobutton Kapitalgesellschaft erscheint die Listen-Auswahl Personalgesellschaft.

Wie kann ich das ganze "richtig" stellen?
Vielen Dank im Voraus für die Hilfe!
Gruß
BenniPur
 
Zuletzt bearbeitet:
Neben deinem eigentlich Problem, könntest du das auch einfach in einem Auswahlmenü unterbringen:
HTML:
<select>
	<optgroup label="Personengesellschaften">
		<option>Einzelunternehmen</option>
		<option>KG</option>
		<option>e.K.</option>
		<option>oHG</option>
		<option>GbR</option>
		<option>GmbH &amp; Co KG</option>
	</optgroup>
	<optgroup label="Kapitalgesellschaften">
		<option>AG</option>
		<option>GmbH</option>
	</optgroup>
</select>
 
Ersetz mal die beiden Disjunktionen durch Konjunktionen oder verringere es nur auf:
Code:
if( aktiv_reform_1 == true ) {
	/* … */
} else if( aktiv_reform_2 == true ) {
	/* … */
} else {
	/* … */
}
Du könntest dir ja auch einfach mal die Werte der beiden Variablen ausgeben lassen, um so die Ursache des Problems herauszufinden.
 
Hallo Gumbo,

danke für den Tipp, nur leider hat das mit dem Vereinfachen nicht die gewünschte Wirkung...

Ersetz mal die beiden Disjunktionen durch Konjunktionen oder verringere es nur auf:
Code:
if( aktiv_reform_1 == true ) {
	/* … */
} else if( aktiv_reform_2 == true ) {
	/* … */
} else {
	/* … */
}
Du könntest dir ja auch einfach mal die Werte der beiden Variablen ausgeben lassen, um so die Ursache des Problems herauszufinden.

:confused: Wie mache ich das? Bin noch nicht allzu tief in JavaScript drinne ;-)

wo? :suspekt:
Zeige bitte mal den Code, damit man sieht, wie du das ganze aufrufst.

Mal auf den blauen Dunst hin...versuche mal, diese Funktion nach dem Klick etwas zeitverzögert auszuführen ;)

Hallo Sven,

hier ist der Radio Button Code, hab ich im Eifer des Gefechts vergessen ;-)
HTML:
        <tr>
          <td>
          <label>
          <input type="radio" name="radio1" id="PerGes" value="PerGesKapGes" onchange="rechtsform();" />
          </label>
          Personengesellschaft</td>
          <td colspan="2">            
            <label>
            <input type="radio" name="radio1" id="KapGes" value="PerGesKapGes" onchange="rechtsform();" />
            </label>
            Kapitalgesellschaft</td>
        </tr>

Wie kann ich denn eine Funktion zeitverzögert ausführen?
Gruß
bennipur

Neben deinem eigentlich Problem, könntest du das auch einfach in einem Auswahlmenü unterbringen:
HTML:
<select>
	<optgroup label="Personengesellschaften">
		<option>Einzelunternehmen</option>
		<option>KG</option>
		<option>e.K.</option>
		<option>oHG</option>
		<option>GbR</option>
		<option>GmbH &amp; Co KG</option>
	</optgroup>
	<optgroup label="Kapitalgesellschaften">
		<option>AG</option>
		<option>GmbH</option>
	</optgroup>
</select>
Danke für den Tipp, kannte diese Art noch gar nicht ;-)
 

Neue Beiträge

Zurück