user3105161
user3105161

Reputation:

Javascript Make Quiz RadioButtons

I have wrote this code in HTML and JavaScript. I wanted to make a Quiz but I am stuck on making the submit button for all the questions and then display the score.

<html>
<head>
<script src=funcs.js> </script>
<title>Quiz</title>
</head>

<body>
<form>
Pyetja 1 : Cila eshte formula e famshe e Njutonit?
<ul>
<li><input type="radio" name="a1" value="gabuar">E=mv^2 </li>
<li><input type="radio" name="a1" value="gabuar">E=mc^2 </li>
<li><input type="radio" name="a1" value="sakte">F=ma </li>
</ul>

Pyetja 2: Cila eshte data e clirimit te Shqiperise?
<ul>
<li><input type="radio" name="a2" value="gabuar">18.11.1944</li>
<li><input type="radio" name="a2" value="sakte">29.11.1944 </li>
<li><input type="radio" name="a2" value="gabuar">28.11.1994 </li>
</ul>


Pyetja 3: Me cilat shtete kufizohet Shqiperia, ne rruge tokesore?
<ul>
<li><input type="radio" name="a3" value="gabuar">Serbi,Kosove,Greqi,Maqedoni</li>
<li><input type="radio" name="a3" value="gabuar">Itali,Kosove,Greqi </li>
<li><input type="radio" name="a3" value="sakte">Mali Zi, Kosove,Maqedoni, Greqi </li>
</ul>

</form>

<p>
<input name="btSubmit" type="button" value="Submit" onClick="fSubmit()">
</p>


</body>
</html>

And this is the JavaScript part. I think that i should create an Array to store the questions but cant figure out how should I check them after it.

function fSubmit() {
    var pgjSakte = document.getElementsByName("a1");
    var nrRadio = pgjSakte.length;
    var nrSakte =0

    for(var i = 0; i< nrRadio; i++)
    {
        if(pgjSakte[i].checked)
        {
        if(pgjSakte[i].value == "sakte"){
            alert("Sakte")
                break;}
        else
            alert("Gabuar")

        }
    }

    }

Thanks in Advance

Upvotes: 0

Views: 173

Answers (2)

user2755150
user2755150

Reputation:

Do that in a for loop

function fSubmit() {

    for(var i = 1;i < 4;i++){

        elm = "a" + i;

        pgjSakte = document.getElementsByName(elm);
        nrRadio = pgjSakte.length;
        nrSakte =0;

        for(var j = 0; j< nrRadio; j++)
        {
            if(pgjSakte[j].checked)
            {
            if(pgjSakte[j].value == "sakte"){
                alert("Sakte")
                    break;}
            else
                alert("Gabuar")

            }
        }

    }

}

Upvotes: 0

Mernayi
Mernayi

Reputation: 257

You were only getting one selected radiobuttonlist and not all of them!

HTML

<div id='demo'> </div>

Javascript

function fSubmit() {
var pgjSakte = document.getElementsByTagName ('input');
var nrSakte = 0

for(var i = 0; i< pgjSakte.length; i++)
{
    if(pgjSakte[i].checked == true)
    {
        if(pgjSakte[i].value == "sakte"){
            alert("Sakte");
            nrSakte++;
        }
        if(pgjSakte[i].value == "gabuar"){
            alert("Gabuar");

        }
    }
}
document.getElementById("demo").innerHTML = nrSakte;

}

Upvotes: 3

Related Questions