Javascript er ikke lige min stærkeste side, så søger lidt råd her. Jeg har en select, hvor brugeren angiver om han skriver en artikel eller en anmeldelse. Hvis det er en anmeldelse skal der vises en ny select med antallet af stjerner, og hvis det er en artikel skal kilde og kilde link textbokse vises.
Eeftersom det hele er i en stor tabel, så derfor er det hele rækken der skal skjules.
Hvis det er en artikel: <tr><td>Kilde: </td><td><input type="text" name="Kilde" value="" style="width:300px"></td></td></tr> <tr><td>Kilde link: </td><td><input type="text" name="Kilde_link" value="" style="width:300px"></td></td></tr>
Hvis det er en anmeldelse: <tr><td>Stjerner: </td><td><select name="Stjerner"><option value="0">Vælg</option><option value="1" SELECTED>1</option><option value="2" >2</option><option value="3" >3</option><option value="4" >4</option><option value="5" >5</option></select></td></tr>
Så skal du bare lægge id="artikel" på det element, der indeholder artikel-delen, og id="anmeldelse" på elementet, der indeholder anmeldelses-delen. Jeg mener dog ikke, du må lægge disse direkte på tr-tags, da disse ikke bare sådan kan skjules/vises.
Ikke direkte om en tr. Så ville jeg sørge for, at artikler ligger i én tabel og anmeldelser i en anden. Så kan du godt lægge id'erne direkte på tabellerne.
Hov, og funktionen skulle ikke være: <script type="text/javascript"> function ToggleDisplay(o){ o.style.display=o.style.display!="block"?"none":"block" } </script> men: <script type="text/javascript"> function ToggleDisplay(o){ o.style.display=o.style.display!="block"?"block":"none" } </script>
Ja, javascript er case-sensitive, hvilket vil sige, at du ikke kan bruge store og små bogstaver, som du lyster. ;) Så dit første eksempel duer ikke, når du har id="Artikel" og id="Anmeldelse". De skal begge 2 begynde med lille A, men det har du jo ændret i dit sidste eksempel.
Prøv lige at sætte style="display:none" på begge p-tags.
Når du laver hjemmesider er det en rigtig god idé at slå visning af JavaScript-fejl til. :) På den måde fandt jeg hurtigt fejlene, som var sneget sig ind i min kode.
Dette her er testet og virker:
<html> <head> <title>Title here!</title> <script type="text/javascript"> function Hide(a){ for(var i=0;i<a.length;i++)document.getElementById(a[i]).style.dislay="none" } function ToggleDisplay(o){ o.style.display=o.style.display!="block"?"block":"none" } </script> </head> <body>
skifter til anmeldelse: der står anmeldelse. Skifter til artikel: der står både anmeldelse og artikel skifter til artikel og der står anmeldelse skifter til artikel og der står intet
Det virker til at det er lidt tilfældigt hvordan den skifter, og dette er copy n' paste af den kode du postet:)
Jeg har optimeret lidt og testet igen: ************************************** <html> <head> <title>Title here!</title> <script type="text/javascript"> function ShowItem(o){ var o=document.getElementById(o.options[o.selectedIndex].value); var a=['artikel','anmeldelse']; for(var i=0;i<a.length;i++)document.getElementById(a[i]).style.display="none"; o.style.display=o.style.display!="block"?"block":"none" } </script> </head> <body>
</body> </html> ********************************* Så nu foregår det på en lidt anden og mere hensigtsmæssig måde.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.