Avatar billede hejmand Nybegynder
06. februar 2002 - 12:26 Der er 10 kommentarer og
1 løsning

Problem i javascript-spørgeskema

Hej, jeg har meget brug for hjælp!!!
Dette script er en test, der skal kunne sende brugeren videre til en test2 hvis han har over 15 point. - Ellers kommer der en alert, der fortæller at han kan tage den første test igen, og han sendes tilbage til starten af test1. - Men det virker ikke... Som scriptet er nu bliver pointene ikke lagt ordentligt sammen - man får nul selvom man svarer rigtigt på det hele...

<html>
<head>

<script>

function udregn()
{
var sum = 0;
var point = 0;

if (form1.spg1.value == 1)
    point = 5

  else
    point = 0;

if (form1.spg2.value == 3)
    point = 5

  else
    point = 0;

sum = sum + point;


if (form1.spg3.value == 2)
    point = 5

  else
    point = 0;

sum += point;


if (form1.spg4.value == 2)
    point = 5

  else
    point = 0;


sum += point;

if (form1.spg5.value == 3)
    point = 5

  else
    point = 0;

sum += point;

  if ( sum <= 15 )
  {
      window.alert("Du har for lidt point, og kan desværre ikke gå videre, - prøv igen")
      document.location = "test.html"
  }
  else
      document.location = "test2.html";
 

parent.frames("top").document.write("Du har fået " + sum + " point.");
     
}

</script>

</head>




<body>

<form action="" name="form1">


  <p>&nbsp;</p>
  <p><b>Hvilke medlemmer har gruppe 3?<br>
 
  <input type="radio" value="1"  name="spg1"></b>Liv, Ida, Ferhat og Mette<br>
 
  <input type="radio" value="2"  name="spg1"></b>Rikke, Ole, Bithe og Vita<br>
 
  <input type="radio" value="3"  name="spg1"></b>Liv, Ida, Mette og Maria<br>

  <p>&nbsp;</p>
  <p><b>Hvorfor er gruppe 3 så seje til JavaScript?<br>
 
  <input type="radio" value="1"  name="spg2"></b>Fordi de har noget kørende med Bjarne?<br>
 
  <input type="radio" value="2"  name="spg2"></b>Fordi de kunne det hele i forvejen?<br>
 
  <input type="radio" value="3"  name="spg2"></b>Fordi de er naturtalenter?<br>

  <p>&nbsp;</p>
  <p><b>Hvilket ord holder gruppe 3 mindst af?<br>
 
  <input type="radio" value="1"  name="spg3"></b>"appName"<br>
 
  <input type="radio" value="2"  name="spg3"></b>"undefined"<br>
 
  <input type="radio" value="3"  name="spg3"></b>"array"<br>

  <p>&nbsp;</p>
  <p><b>Hvad er gruppe 3's gennemsnitsalder?<br>
 
  <input type="radio" value="1"  name="spg4"></b>18,5 år?<br>
 
  <input type="radio" value="2"  name="spg4"></b>21,5 år?<br>
 
  <input type="radio" value="3"  name="spg4"></b>22,5<br>

  <p>&nbsp;</p>
  <p><b>Hvad er gruppe 3's yndlingsfarve?<br>
 
  <input type="radio" value="1"  name="spg5"></b>Gul?<br>
 
  <input type="radio" value="2"  name="spg5"></b>Cyan?<br>
 
  <input type="radio" value="3"  name="spg5"></b>Magenta?<br>
</p>

  <p><input name="knap" type="button" value=" Fortsæt " onclick = "udregn()"></p>
 
</form>

</body>
</html>
Avatar billede agony Nybegynder
06. februar 2002 - 12:31 #1
f (form1.spg2.value == 3)
    point = point + 5
Avatar billede Slettet bruger
06. februar 2002 - 12:31 #2
<html>
<head>

<script>

function udregn()
{
var sum = 0;
var point = 0;

if (form1.spg1[0].checked)
    point = 5

  else
    point = 0;

if (form1.spg2[2].checked)
    point = 5

  else
    point = 0;

sum = sum + point;


if (form1.spg3[1].checked)
    point = 5

  else
    point = 0;

sum += point;


if (form1.spg4[1].checked)
    point = 5

  else
    point = 0;


sum += point;

if (form1.spg5[2].checked)
    point = 5

  else
    point = 0;

sum += point;

  if ( sum <= 15 )
  {
      window.alert(sum + " er for få point, og du kan desværre ikke gå videre, - prøv igen!")
      document.location = "test.html"
  }
  else
      document.location = "test2.html";
 

parent.frames("top").document.write("Du har fået " + sum + " point.");
     
}

</script>

</head>




<body>

<form action="" name="form1">


  <p>&nbsp;</p>
  <p><b>Hvilke medlemmer har gruppe 3?<br>
 
  <input type="radio" value="1"  name="spg1"></b>Liv, Ida, Ferhat og Mette<br>
 
  <input type="radio" value="2"  name="spg1"></b>Rikke, Ole, Bithe og Vita<br>
 
  <input type="radio" value="3"  name="spg1"></b>Liv, Ida, Mette og Maria<br>

  <p>&nbsp;</p>
  <p><b>Hvorfor er gruppe 3 så seje til JavaScript?<br>
 
  <input type="radio" value="1"  name="spg2"></b>Fordi de har noget kørende med Bjarne?<br>
 
  <input type="radio" value="2"  name="spg2"></b>Fordi de kunne det hele i forvejen?<br>
 
  <input type="radio" value="3"  name="spg2"></b>Fordi de er naturtalenter?<br>

  <p>&nbsp;</p>
  <p><b>Hvilket ord holder gruppe 3 mindst af?<br>
 
  <input type="radio" value="1"  name="spg3"></b>"appName"<br>
 
  <input type="radio" value="2"  name="spg3"></b>"undefined"<br>
 
  <input type="radio" value="3"  name="spg3"></b>"array"<br>

  <p>&nbsp;</p>
  <p><b>Hvad er gruppe 3's gennemsnitsalder?<br>
 
  <input type="radio" value="1"  name="spg4"></b>18,5 år?<br>
 
  <input type="radio" value="2"  name="spg4"></b>21,5 år?<br>
 
  <input type="radio" value="3"  name="spg4"></b>22,5<br>

  <p>&nbsp;</p>
  <p><b>Hvad er gruppe 3's yndlingsfarve?<br>
 
  <input type="radio" value="1"  name="spg5"></b>Gul?<br>
 
  <input type="radio" value="2"  name="spg5"></b>Cyan?<br>
 
  <input type="radio" value="3"  name="spg5"></b>Magenta?<br>
</p>

  <p><input name="knap" type="button" value=" Fortsæt " onclick = "udregn()"></p>
 
</form>

</body>
</html>
Avatar billede agony Nybegynder
06. februar 2002 - 12:31 #3
ellers lægger du ikke den ekstra værdi oveni :)
Avatar billede hejmand Nybegynder
06. februar 2002 - 12:32 #4
Vil du forklare?!!
Avatar billede Slettet bruger
06. februar 2002 - 12:36 #5
agony>> Jo! Den ekstra værdi bliver jo lagt oveni, hejmand gør det bare på en lidt besværligere måde! Men aflæsningen af de mange radio-buttons var forkert. Jeg har rettet siden, og hvis du skal lave flere tests, skal du huske at skrive, fx:
if (form1.spg1[nummer].checked) {
... hvor "nummer" er nummeret på radio-knappen minus 1!
Avatar billede hejmand Nybegynder
06. februar 2002 - 12:37 #6
phoenix>> Det virker stadig ikke,- man får ingen point selvom man svarer rigtig på alle spg.
Avatar billede Slettet bruger
06. februar 2002 - 12:42 #7
Jeg gør... Men jeg er i gang med en forbedret version!
Just a moment! :)
Avatar billede hejmand Nybegynder
06. februar 2002 - 12:46 #8
Har rettet lidt selv og har fået det til at virke. De 45 er dine, men du må endelig gerne lave en forbedret version, hvis du har tid (og lyst). Tak for hjælpen!
Avatar billede Slettet bruger
06. februar 2002 - 12:55 #9
Her er den:

<script>
function udregn() {
rigtigeSvar = new Array(1,3,2,2,3); //De rigtige svar i den rigtige rækkefølge!

f = document.form1;
p = 0;
t = 0;
for (i = 0; i < rigtigeSvar.length; i++) {
if (eval("f.spg" + (i + 1) + "[rigtigeSvar[i] - 1].checked")) p += 5;
}
if (p <= 15) {
alert("Desværre! " + p + " points er ikke nok!\nPrøv igen!");
f.reset();
}
else self.location.href = "test2.htm";
}
</script>

Dine radio-buttons skal bare hedde "spg1", "spg2", o.s.v. Husk at rette i "rigtigeSvar"!
Avatar billede hejmand Nybegynder
06. februar 2002 - 13:09 #10
Det er virkelig genialt - det virker perfekt. Men helt præcist hvad gør eval()?
Avatar billede Slettet bruger
06. februar 2002 - 13:30 #11
eval() er en funktion som tager en streng og afvikler den som var det en normal kodelinje. Det er lidt svært at forklare, men se her:
http://developer.netscape.com/docs/manuals/communicator/jsref/glob8.htm
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