IE Hide/Show probleem

Status
Niet open voor verdere reacties.

larsisgoed9

Gebruiker
Lid geworden
29 mei 2007
Berichten
44
Beste,
In alle browsers* krijg ik de pagina goed weergeven, echter in IE weer niet.
Het is een Hide/Show script, en als je op de radiobutton "Ja" klikt, word de content weergegeven, en als je op de radiobutton "Nee" klikt, word deze weer gesloten.
Het probleem is: Dat als je op de radio button klikt, de div niet word weergegeven, maar dat de input text met name vraag1 word weergegeven / verborgen.

De javascript ziet er zo uit:
Code:
<script type="text/javascript" language="JavaScript">
function HideContent(d) {
document.getElementById(d).style.display = "none";
}
function ShowContent(d) {
document.getElementById(d).style.display = "block";
}
function ReverseDisplay(d) {
if(document.getElementById(d).style.display == "none") { document.getElementById(d).style.display = "block"; }
else { document.getElementById(d).style.display = "none"; }
}
</script>

De pagina ziet er zo uit:
Code:
<h3>Vraag 1</h3>
<b>Wat is de vraag:</b><br />
<input type="text" name="vraag1" value="<?php echo $row2['vraag1']; ?>"><br />
<b>Is dit een multiple choice?</b><br />
<input type="radio" name="rad1" value="0" onClick="HideContent('vraag1')" <?php if($row2['rad1'] == '0'){ echo 'checked'; } ?>>Nee <input type="radio" name="rad1" value="1" onClick="ShowContent('vraag1')" <?php if($row2['rad1'] == '1'){ echo 'checked'; } ?>>Ja<br />
<b>Wat is het goede antwoord?</b><br />
<input type="text" name="antw1_1" value="<?php echo $row2['antw1_1']; ?>"><br />
<div id="vraag1" <?php if($row2['rad1'] == 0) { echo 'style="display:none;"'; }?>>
<b>Vul drie foute antwoorden in: (deze worden telkens geschud bij het doen van deze toets)</b><br />
1) <input type="text" name="antw1_2" value="<?php echo $row2['antw1_2']; ?>"><br />
2) <input type="text" name="antw1_3" value="<?php echo $row2['antw1_3']; ?>"><br /> 
3) <input type="text" name="antw1_4" value="<?php echo $row2['antw1_4']; ?>"><br />
</div>
<br />

Ik werk met Chrome / SRWare Iron, en het probleem is met IE 8.

Ik wil IE 8 niet verbieden, want het is ervoor gemaakt dat leraren toetsen aanmaken, die leerlingen vervolgens kunnen maken.
Aangezien de meeste leraren & school alleen IE geïnstalleerd hebben, kan ik het niet verbieden omdat anders de school m'n project niet aanneemt & kan zien.

Ik heb helaas ook geen voorbeeld, omdat deze site nog niet in de lucht is & omdat deze pagina voor leraren bedoeld is, en niet voor leerlingen & al helemaal geen buitenstaanders ;)

Hoop dat jullie me kunnen helpen!

Lars:cheer:

P.S. Dit is van de tutorial http://www.willmaster.com/blog/css/show-hide-div-layer.php en daar werkt het wel met IE....
 
IE 6 tot en met 8 hebben een bug wanneer je document.getElementById gebruikt. IE gebruikt dan ook elements met de name attribuut als id.
Zelfde gebeurd ook in jou'n code

Wanneer je onderstaande code even test zie je wat er gebeurt.

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Javascript</title>
<script>
window.onload = function(){	
	var vraag1 = document.getElementById('vraag1');
	alert(vraag1.value);
}
</script>
</head>

<body>
    <input name="vraag1" type="text" value="fout" />
    <div id="vraag1">vraag1</div>
</body>
</html>

In firefox zal je undefined zien wat goed is en in IE 6 tot en met 8 zal je fout lezen de value van de input field dus wat fout is
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan