Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Javascript: Enquete-vraag tonen en verbergen

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Al opgelost!

Allo allo!

Ik heb een probleempje, waarvan ik denk dat jullie er wel uitkomen:

Ik moet voor een klant een enquete inrichten, waarin afhankelijk van een geselecteerde radio bij een vraag een volgende vraag moet tonen of verbergen.

Dit doe ik alsvolgt:

De radio
HTML:
1
2
<input type=radio name=field8182 value="Ja" onclick="javascript:vergelijking_check();">Ja<br />
<input type=radio name=field8182 value="Nee" onclick="javascript:vergelijking_check();">Nee<br />


Het te tonen/verbergen stuk:
HTML:
1
2
3
4
</tr>
<tr id="vergelijking_welke" style="display: none;">
<td><b>Met welke?</b>&nbsp;<input style="font-family: Tahoma,Arial,sans-serif; font-size: 11px; width: 300px;" name="field8183" type="text"><br>&nbsp;<br></td>
</tr>

Met het volgende javascript:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
        function vergelijking_check()
                                        {

                                            var field8182 = document.forms.change.field8182[0].checked;
                                            if (field8182 == true) 
                                            {
                                                document.getElementById('vergelijking_welke').style.display = "inline";
                                            } else {
                                                document.getElementById('vergelijking_welke').style.display = "none";
                                            }
                                        }


Dit gaat in IE7 prima. In Firefox echter niet. In Firefox blijft, als de 2e vraag ingeschakeld is geweest en vervolgens weer uitgeschakeld, de ruimte gereserveerd. Als ik de vraag nu opnieuw open, opent Firefox echter een nieuw stuk ruimte, waardoor als ik dit een paar keer doe er een flink gat in mijn enquete ontstaat. Als ik dit echter in Firefox oplos, door style.display = "table-row" te gebruiken, werkt het gehele script niet in IE7, die geeft als melding dat het element niet gevonden kan worden. Is hier een makkelijke oplossing voor of zou hier een browsercheck in moeten?

Al opgelost

[ Voor 1% gewijzigd door Verwijderd op 17-08-2007 14:09 . Reden: Al opgelost! ]


Verwijderd

JavaScript:
1
2
3
4
5
if (field8182) {
  document.getElementById('vergelijking_welke').style.display = "";
} else {
  document.getElementById('vergelijking_welke').style.display = "none";
} 


overigens is het gebruik van een javascript label in een event handler tamelijk klets

[ Voor 25% gewijzigd door Verwijderd op 17-08-2007 09:57 . Reden: bende ws weg ]


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Voor on/off behaviour zou ik overigens een checkbox gebruiken en geen radiobuttons. Verder zou ik een handle aan de functie meegeven mbv het 'this' keyword.

Intentionally left blank


Verwijderd

Topicstarter
crisp schreef op vrijdag 17 augustus 2007 @ 09:57:
Voor on/off behaviour zou ik overigens een checkbox gebruiken en geen radiobuttons. Verder zou ik een handle aan de functie meegeven mbv het 'this' keyword.
Het is een multiple-choice vraag waar slechts een antwoord mogelijk is, vandaar de keuze voor een radio.

Verwijderd

Topicstarter
Al opgelost. Ik heb de enquete hershreven met div's in plaats van tabellen, dit werkt een stuk beter.

Verwijderd

schrijf het liever om naar fieldsets, legends, labels en ps

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 15:18
HTML:
1
<input type=radio name=field8182 value="Ja" onclick="javascript:vergelijking_check();">Ja<br />


Die javascript: hoeft daar trouwens niet. onclick is sowieso javascript.
Pagina: 1