Avatar billede himself13 Nybegynder
13. juni 2005 - 20:56 Der er 12 kommentarer og
2 løsninger

Ændre synlig udfra valg i en drop-down box!

Hej,

Jeg har en drop-down box med 5 valgmuliheder. Jeg skal så bruge et javascript der udfra ens valg gør en bestemt "<tr>" synlig!

Jeg har prøvet nogle forskellige ting - men kan kun få det lavet sådan at det virker hvis man trykker på én bestemt én så viser den noget, og altså ikke sådan at den viser en udfra valget!

Er der nogen der kan hjælpe lidt med det?

Med venlig hilsen
Daniel
Avatar billede skovenborg Nybegynder
13. juni 2005 - 21:06 #1
Hvis du nu giver hver tr-element en id, og via css skjuler dem (fx med display:none), så kunne du gøre sådan her:
<script type="text/javascript">
var activeTr;
function showTr(ID) {
  activeTr.display = "none";
  activeTr = document.getElementById(ID).style;
  activeTr.display = "block" // Egentlig burde det ikke være block, men IE forstår ikke den "rigtige" udgave
}
</script>

<select onchange="if (this.selectedIndex > 0) {showTr(this.value);}>
<option value="">Vælg</option>
<option value="id1">Tr 1</option>
<option value="id2">Tr 1</option>
<option value="id3">Tr 1</option>
<option value="id4">Tr 1</option>
<option value="id5">Tr 1</option>
</select>
Avatar billede himself13 Nybegynder
13. juni 2005 - 21:19 #2
Hmm -> det virker ikke helt! Herunder er min kode, hvad gør jeg galt?

---

<html>
<head>
<script type="text/javascript">
var activeTr;
function showTr(ID) {
  activeTr.display = "none";
  activeTr = document.getElementById(ID).style;
  activeTr.display = "block" // Egentlig burde det ikke være block, men IE forstår ikke den "rigtige" udgave
}
</script>

</head>
<body>

    <table cellspacing=0 cellpadding=0 style="width: 727px;">
      <tr>
      <td valign="top" width=448 height=310>
        <h3 style="padding: 10px;">Billeder</h3>
        <form action="test.html" method="post" style="margin: 0px; padding: 0px;">
        <table cellspacing=0 cellpadding=0>
          <tr>
          <td>
            <p class="menu-punkt"><img src="/gfx/menu-arrow.gif" alt="">Billedtype:</p>
            <select name="type" border=0 class="stdinput" style="width: 325px; margin-left: 23px;" onchange="if (this.selectedIndex > 0) {showTr(this.value);}>
            <option value="type1">Diverse</option>
            <option value="type2">Logo</option>
            <option value="type3">Artwork</option>
            <option value="type4">Screenshot</option>
            <option value="type5">Boxshot</option>
            </select>
          </td>
          </tr>
          <tr id="type4" style="display:none;">
          <td>
            <p class="menu-punkt"><img src="/gfx/menu-arrow.gif" alt="">ID1:</p>
            <select name="id1" border=0 class="stdinput" style="width: 325px; margin-left: 23px;">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            </select>
            <p class="menu-punkt"><img src="/gfx/menu-arrow.gif" alt="">ID2:</p>
            <select name="id2[]" multiple border=0 class="stdinput" style="width: 325px; margin-left: 23px;">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            </select>
          </td>
          </tr>
          <tr id="type5" style="display:none;">
          <td>
            <p class="menu-punkt"><img src="/gfx/menu-arrow.gif" alt="">ID1:</p>
            <select name="id1" border=0 class="stdinput" style="width: 325px; margin-left: 23px;">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            </select>
            <p class="menu-punkt"><img src="/gfx/menu-arrow.gif" alt="">ID2:</p>
            <select name="id2[]" multiple border=0 class="stdinput" style="width: 325px; margin-left: 23px;">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
            <option value="6">6</option>
            <option value="7">7</option>
            <option value="8">8</option>
            <option value="9">9</option>
            </select>
          </td>
          </tr>
        </table>
        </form><br>
      </td>
      </tr>
    </table>


</body>
</html>
Avatar billede himself13 Nybegynder
13. juni 2005 - 21:20 #3
En lille rettelse:

            <select name="type" border=0 class="stdinput" style="width: 325px; margin-left: 23px;" onchange="if (this.selectedIndex > 0) {showTr(this.value);}">


Men det virker stadig ikke!!
Avatar billede himself13 Nybegynder
13. juni 2005 - 21:21 #4
IE giver følgende fejl:

'activeTR' er null eller ikke et objekt
Avatar billede skovenborg Nybegynder
13. juni 2005 - 21:51 #5
Nu var det jo meningen at du skulle give din tr en id:
<tr id="id1">
...
</tr>
<tr id="id2">
... osv.

Og så kun have en selectbox. Din value i din selectbox skal jo svare til id'en på det element du vil skjule.

Eller har jeg misforstået hvad du egentlig vil?
Avatar billede roenving Novice
13. juni 2005 - 22:58 #6
-- men Ulrik, du har vel også glemt at checke om activeTr er et objekt, når tingen aktiveres første gang ...

Altså:

<script type="text/javascript">
var activeTr;
function showTr(ID) {
  if(activeTr)
    activeTr.display = "none";
  activeTr = document.getElementById(ID).style;
  activeTr.display = "block" // Egentlig burde det ikke være block, men IE forstår ikke den "rigtige" udgave
}
</script>
Avatar billede skovenborg Nybegynder
13. juni 2005 - 23:01 #7
aaargh - øvøv. Det er også rigtigt. Den var helt svedt ud :-S
Avatar billede himself13 Nybegynder
14. juni 2005 - 14:27 #8
Smid et svar begge to - for med roenving's tilføjelse virker det!

skovenborg -> jeg bruger også de "id"'er som de har i select boxen (type1, type2, type3, type4 osv...)
Avatar billede roenving Novice
14. juni 2005 - 14:32 #9
-- men langt de fleste point må tilfalde manden, som lavede arbejdet !-)

Velbekomme '-)
Avatar billede himself13 Nybegynder
14. juni 2005 - 14:33 #10
Helt enig -> men du fandt alligevel fejlen og gjorde at det virkede :)

Men tusind tak for hjælpen begge to!
Avatar billede skovenborg Nybegynder
14. juni 2005 - 22:37 #11
hov, her er et svar foresten ;-)
Avatar billede himself13 Nybegynder
14. juni 2005 - 22:57 #12
argh... jeg dummede mig! fik byttet om på tallene... kan i selv fordele dem? ellers giver jeg gerne skovenborg nogle ekstra point!"
Avatar billede roenving Novice
15. juni 2005 - 14:23 #13
Ja, vi skal nok finde ud af det !-)
Avatar billede roenving Novice
15. juni 2005 - 14:25 #14
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester