06. februar 2002 - 12:26Der 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> </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> </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> </p> <p><b>Hvilket ord holder gruppe 3 mindst af?<br>
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> </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> </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> </p> <p><b>Hvilket ord holder gruppe 3 mindst af?<br>
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!
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!
Synes godt om
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"!
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.