Hallo,
ich habe folgendes script:
<script type="text/javascript">
function show(fieldname)
{if(document.formular.boxone.checked)
{
document.getElementById(fieldname).style.visibility = "hidden"; //visible
}
else
document.getElementById(fieldname).style.visibility = "visible"; //hiddenif(document.formular.boxtwo.checked)
{
document.getElementById(fieldname).style.visibility = "hidden"; //visible
}
else
document.getElementById(fieldname).style.visibility = "visible"; //hiddenif(document.formular.boxthree.checked)
{
document.getElementById(fieldname).style.visibility = "hidden"; //visible
}
else
document.getElementById(fieldname).style.visibility = "visible"; //hidden}
</script>
</head><body>
<form name="formular" action="">
<table border="1">
<tr>
<td>
<input type="checkbox" name="boxone" onClick="void(show('fieldone'), show('transfer'));">geehrte <b>to find</b>
</td>
<td>
<input type="CHECKBOX" name="fieldone" style="visibility:visible" value="Ihre Eingabe">geehrte <b>blacklist</b>
</td>
<td>
<input type="CHECKBOX" name="transfer" style="visibility:visible" value="Ihre Eingabe">geehrte <b>transfer</b>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="boxtwo" onClick="void(show('fieldone1'), show('transfer1'));">damen <b>to find</b>
</td>
<td>
<input type="CHECKBOX" name="fieldone1" style="visibility:visible" value="Ihre Eingabe">damen <b>blacklist</b>
</td>
<td>
<input type="CHECKBOX" name="transfer1" style="visibility:visible" value="Ihre Eingabe">damen <b>transfer</b>
</td>
</tr>
<tr>
<td>
<input type="checkbox" name="boxthree" onClick="void(show('fieldone2'), show('transfer2'));">herren <b>to find</b>
</td>
<td>
<input type="CHECKBOX" name="fieldone2" style="visibility:visible" value="Ihre Eingabe">herren <b>blacklist</b>
</td>
<td>
<input type="CHECKBOX" name="transfer2" style="visibility:visible" value="Ihre Eingabe">herren <b>transfer</b>
</td>
</tr>
</table></form>
wenn ich die letzte checkbox (herren to find) anklicke, dann verschwinden auch herren blacklist und herren transfer.
Ja, im IE. Für alle Browser gilt: document.getElementById(fieldname) kann kein Element liefern, weil Du keinerlei Elemente mit IDs im HTML hast. Warum also nicht
document.formular.elements[fieldname].style.visibility = "hidden";
?
warum aber nicht unabhängig davon damen blacklist und damen transfer?
Gehen wir Deine Logik mal durch:
Sei document.formular.boxtwo angeklickt, dann wird
show('fieldone1');
aufgerufen. Damit ist fieldname='fieldone1'. Sei nun document.formular.boxtwo.checked, dann wird
document.formular.elements['fieldone1'].style.visibility = "hidden";
gesetzt... und das Programm läuft weiter zu:
if(document.formular.boxthree.checked)
{
document.formular.elements[fieldname].style.visibility = "hidden"; //visible
}
else
{
document.formular.elements[fieldname].style.visibility = "visible"; //hidden
}
Nun, document.formular.boxthree.checked ist false, dann wird der else-Zweig, also:
document.formular.elements['fieldone1'].style.visibility = "visible";
ausgeführt. E voilà.
Überdenke also Deine Logik.
viele Grüße
Axel