Avatar billede orpheus Nybegynder
11. september 2008 - 12:58 Der er 7 kommentarer og
1 løsning

Vil beholde form og se resultat…

Hej alle

Når jeg kører onChange forsvinder min form når resultatet vises, hvordan får jeg den til at vise både resultat og form (uanset resultatet)?

<script type="text/javascript">
function selectValue(){
var sel_idx = document.form1.menu.selectedIndex
var s_Value = document.form1.menu.options[sel_idx].value
if (s_Value == 3) {document.write("<b>Good morning</b>");} else {document.write("<b>Good night</b>");}
  }
</script>


<form name="form1">
<select name="menu" onChange="selectValue()">
  <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>
</form>
Avatar billede w13 Novice
11. september 2008 - 13:16 #1
Document.write er en rigtig gammel kode.

Gør i stedet sådan her:

<script type="text/javascript">
function selectValue(o){
  var s_Value=o.options[o.selectedIndex].value;
  var oMessage=document.getElementById("message");

  if(s_Value==3){
    oMessage.firstChild.nodeValue="Good morning";
  }else{
    oMessage.firstChild.nodeValue="Good night";
  }
}
</script>

<div id="message" style="font-weight:bold">&nbsp;</div>

<form>
<select onchange="selectValue(this)">
  <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>
</form>

Vær dog opmærksom på, at du ikke bare kan skrive HTML ind i dine beskeder med denne metode.

Og så har jeg i øvrigt ændret onChange til onchange, der er det korrekte navn. =)
Avatar billede w13 Novice
11. september 2008 - 13:22 #2
Og så har jeg også sparet meget af linjerne:

var sel_idx = document.form1.menu.selectedIndex
var s_Value = document.form1.menu.options[sel_idx].value

væk ved at overføre this til funktionen, som er en reference til select'en.
Avatar billede orpheus Nybegynder
11. september 2008 - 13:28 #3
Tak for hjælpen. Er lige startet med javascript i går, så det bliver spændende at komme videre med, men nu ved jeg jo hvor jeg kan henvende mig :) Tak igen
Avatar billede w13 Novice
11. september 2008 - 13:31 #4
Jep! :) Og tak for point!

Min kode benytter det, at &nbsp; er div'en "child", til at manipulere "&nbsp" med.

Først finder man "barnet" med firstChild og så ændrer man dens "nodeværdi" med nodeValue.
Avatar billede w13 Novice
11. september 2008 - 13:31 #5
*at &nbsp; er div'ens "child"
Avatar billede w13 Novice
11. september 2008 - 13:32 #6
Udover firstChild kan du også bruge lastChild, previousSibling og nextSibling.
Avatar billede orpheus Nybegynder
11. september 2008 - 13:39 #7
Fedt, så kan jeg placere dem hvor jeg vil på sitet. Super :)
Avatar billede orpheus Nybegynder
11. september 2008 - 14:13 #8
Jeg opretter lige en ny tråd med spørgsmålet:

ok, hvad så hvis jeg vil have at når f.eks 3 vælges, så skal den vise en table (hvor den nu skriver Good morning) med forskelligt indhold?
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