Kezdőoldal » Számítástechnika » Weblapkészítés » Javascripttel irt kviz bizonyo...

Javascripttel irt kviz bizonyos resze miert nem mukodik?

Figyelt kérdés

Egy tutorialt csinaltam vegig lepesrol lepesre. A felugro ablakban mutatna, hogy a kerdeskbol mennyit talalt el az illeto. A loop resze mukodik viszont a kerdesekre egyenkent megirt sorok altal mindig az jon ki, hogy tokeletes minden meg akkor is ha direkt rosszat jeloltem be.

html:

<section>

<div id="results">



</div>


<form class="" name="quizForm" onsubmit="return submitAnswers()">

<h3>1+1</h3>

<input type="radio" name="q1" value="a" id="q1a">a 1<br>

<input type="radio" name="q1" value="b" id="q1b">b 2 <br>

<input type="radio" name="q1" value="c" id="q1c">c 3 <br>

<input type="radio" name="q1" value="d" id="q1d">d 4 <br>


<h3>1-1</h3>

<input type="radio" name="q2" value="a" id="q2a">a 3<br>

<input type="radio" name="q2" value="b" id="q2b">b 2<br>

<input type="radio" name="q2" value="c" id="q2c">c 1<br>

<input type="radio" name="q2" value="d" id="q2d">d 0<br>

<br><br>

<input type="submit" name="" value="Submit Answers">



</form>

</section>


js

function submitAnswers(){

var total = 2;

var score = 0;


// Get User Input

var q1 = document.forms["quizForm"]["q1"].value;

var q2 = document.forms["quizForm"]["q2"].value;


//Set correct Answers

var answers = ["b","d"];


//Check Answers

if(q1 == answers[0]);{

score++;

}


if(q2 == answers[1]);{

score++;

}

}

A mukodo loop meg ez:


for(i = 1; i <= total;i++){

if(eval('q'+i) == answers[i - 1]){

score++;

}



2019. márc. 7. 19:31
 1/4 anonim ***** válasza:
Mit akar csinálni az az eval?
2019. márc. 7. 22:21
Hasznos számodra ez a válasz?
 2/4 Drone007 ***** válasza:

A "Check Answers" rész és a "loop" ugyanazt hivatott elvégezni, tehát ellenőrzik elküldés után a válaszokat. Egyszerre mindkettőt nincs értelme használni. Bár a ciklusban van némi hiba, elvileg működnie kell.


Azt viszont nem látom, hogy a score-t és a total-t hol hasonlítod össze, mert ezek még csak a helyes válaszokat számolják meg.


Ha mindkét ellenőrzés fut, az azt jelenti, hogy már 1 helyes válasznál is két jó választ kapsz, lehet ez okozza a hibát.


Talán jobban át kéne nézned azt a tutorialt.

2019. márc. 8. 05:56
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

@drone007,


A tutorialt atfutottam tobbszor es nem jottem ra.

A kettot termeszetesen kulon futtatom es ugy nem mukodik a "check answers" resz. A tutorialban is eloszor az elso reszet mutatja meg es ott mukodik majd kicsereli a loopra, mivel hasznosabb es gyorsabb.


Nala mindektto fut rendesen, kulon-kulon, nalam csak a loop fut rendesen sajna.

Es nem tudom miert :(

2019. márc. 8. 17:07
 4/4 anonim ***** válasza:

Inkább valahogy így:

[link]

így a JS-kód elkülönül a HTML-struktúrától.

2019. márc. 9. 00:52
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!