Avatar billede steen_hansen Forsker
22. maj 2004 - 22:50 Der er 24 kommentarer og
1 løsning

Når valg af punkt i SELECT-boks foretages, skal handling udføres

Jeg har en select-boks med 2 valg:

<select size="1" name="chose">
    <option selected>Foretag et valg</option>
    <option value="choise1">Valg 1</option>
    <option value="choise2">Valg 2</option>
</select>

<% If Request.Form("chose") = "choise1" Then %>

    Mulighed 1

<% Else %>

    Mulighed 2

<% End If %>

Meningen er, at når der er valgt, skal Mulighed 1 eller 2 automatisk dukke op. Formularen skal ikke submittes, men den ene eller den anden mulighed skal dukke op automatisk.

Kringlet? :o)
Avatar billede roenving Novice
22. maj 2004 - 22:56 #1
<select size="1" name="choice" onchange="for(i=1;this.length>i;i++)document.getElementById(this.options[i].value).style.display=(this.options[i].selected)?'block':'none';">
    <option selected>Foretag et valg</option>
    <option value="choice1">Valg 1</option>
    <option value="choice2">Valg 2</option>
</select>

<div id="choice1" style="display:none;">

    Mulighed 1

</div>
<div id="choice2" style="display:none;">

    Mulighed 2

</div>
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:02 #2
Den er jo lige i øret, roenvig :o)

Lægger du et svar?
Avatar billede roenving Novice
22. maj 2004 - 23:04 #3
Velbekomme '-)
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:05 #4
Bedste ven :o)
Avatar billede roenving Novice
22. maj 2004 - 23:05 #5
-- Tak for point ;~}
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:48 #6
roenvig, er der nogen restriktioner, forstået på den måde, at det altsammen SKAL ligge i samme <td></td>? Jeg har lidt problemer med at få det til at funke, når jeg laver

<div id="choice1" style="display:none;">
<tr>
    <td>Mulighed 1</td>
</tr>
</div>
<div id="choice2" style="display:none;">
<tr>
    <td>Mulighed 2</td>
</tr>
</div>
Avatar billede roenving Novice
22. maj 2004 - 23:50 #7
<tr id="choice1" style="display:none;">
    <td>Mulighed 1</td>
</tr>
<tr id="choice2" style="display:none;">
    <td>Mulighed 2</td>
</tr>
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:52 #8
Tabellen ser sådan her ud:

<table>
    <tr>
        <td>
            <select size="1" name="choice" onchange="for(i=1;this.length>i;i++)document.getElementById(this.options[i].value).style.display=(this.options[i].selected)?'block':'none';">
                <option selected>Foretag et valg</option>
                <option value="choice1">Valg 1</option>
                <option value="choice2">Valg 2</option>
            </select>
        </td>
    </tr>
    <div id="choice1" style="display:none;">
    <tr>
        <td>Mulighed 1</td>
    </tr>
    </div>
    <div id="choice2" style="display:none;">
    <tr>
        <td>Mulighed 2</td>
    </tr>
    </div>
</table>
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:52 #9
Ok, så ikke dit indlæg. Prøver
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:55 #10
Det virker. Så har jeg lige et sidste spørgsmål (opretter nyt spørgsmål):

Kan det lade sig gøre at flytte focus til Mulighed 1 (TEXT-boks) eller Mulighed 2 (SELECT-boks), afhængigt af valget?
Avatar billede roenving Novice
22. maj 2004 - 23:57 #11
Ja, selvfølgelig, men så ville jeg nok foretrække at lave en funktion !-)
Avatar billede steen_hansen Forsker
22. maj 2004 - 23:59 #12
Ok, er du man for det? :o)
Avatar billede roenving Novice
23. maj 2004 - 00:11 #13
<script type="text/javascript">
function selChoice(sel){
  for(i=1;sel.length>i;i++){
    document.getElementById(sel.options[i].value).style.display=(sel.options[i].selected)?'block':'none';
  }
  if(sel.selectedIndex>0){
    document.getElementById(sel.value).firstChild.firstChild.focus();
  }
}
</script>

<form>
<table>
  <tr>
    <td>
      <select size="1" name="choice" onchange="selChoice(this)">
        <option selected>Foretag et valg</option>
        <option value="choice1">Valg 1</option>
        <option value="choice2">Valg 2</option>
      </select></td>
  </tr>
  <tr id="choice1" style="display:none;">
    <td><input type="text" name="txtChoice1"></td>
  </tr>
  <tr id="choice2" style="display:none;">
    <td>
      <select size="1" name="selChoice2">
        <option selected>Foretag et valg</option>
        <option value="choice1">Valg 1</option>
        <option value="choice2">Valg 2</option>
        </select></td>
  </tr>
</table>
</form>
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:30 #14
Jeg får lige denne fejl:

Linie 17
Tegn 5
Fejl: Objektet støtter ikke denne egenskab eller metode

Linie 17

    document.getElementById(sel.value).firstChild.firstChild.focus();

Siger det dig noget?
Avatar billede roenving Novice
23. maj 2004 - 00:31 #15
Har du indsat felterne ?-)
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:33 #16
Ja, men jeg har så angivet andre navne end txtChoice1 og selChoice2. Men det er vel også sagen uvedkommende?

Vi taler om det samme, gør vi ikke? :o)
Avatar billede roenving Novice
23. maj 2004 - 00:33 #17
Hvis du har indsat tekst foran, vil du sikkert få en fejlmelding, som ligner den ...

Måske med en nextSibling på også !-)
Avatar billede roenving Novice
23. maj 2004 - 00:35 #18
Navnene er ganske rigtigt bedøvende, som det er gjort, men har du noget foran felterne i cellerne, skal vi finde frem til felterne, f.eks. sådan:

document.getElementById(sel.value).firstChild.firstChild.nextSibling.focus();
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:35 #19
Hmm? Tekst foran hvilket?
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:38 #20
Jeg har to celler:

<tr>
    <td>Tekst 1</td>
    <td><text-boks></td>
</tr>
<tr>
    <td>Tekst 2</td>
    <td><select-boks></td>
</tr>
Avatar billede roenving Novice
23. maj 2004 - 00:46 #21
document.getElementById(sel.value).firstChild.nextSibling.firstChild.focus();
Avatar billede roenving Novice
23. maj 2004 - 00:50 #22
Eller:

document.getElementById(sel.value).childNodes[1].firstChild.focus();
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:52 #23
Yes, så virkede den! (00:50:43)

Du er rå, roenvig! Svarer du ikke på http://www.eksperten.dk/spm/501316? :o)
Avatar billede roenving Novice
23. maj 2004 - 00:55 #24
For mig virkede både 00.46 og 00.50, for de siger præcis det samme !-)
Avatar billede steen_hansen Forsker
23. maj 2004 - 00:57 #25
Ok, jeg prøvede nu kun den sidste, gik ud fra, at du måske lige var kommet på en rettelse :o)

Det er fedt, roenvig! 324763546354 tak for hjælpen. Svarer du på http://www.eksperten.dk/spm/501316? Tag dig ikke af de vittige hoveder :o)
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