Immagino che nel caso reale la risposta da controllare non sia uguale per tutte e 5 le domande (come nell'esempio che hai fatto tu)
Potresti fare un object lookup, es:
codice HTML:
<body>
<input id="domandatestoa1">
<input id="domandatestoa2">
<input id="domandatestoa3">
<input id="domandatestoa4">
<input id="domandatestoa5">
<input type="button" value="Verifica" onclick="contarisposte()"> </body>
L'object contiene come chiavi gli ID dei campi e come valori la risposte corrette corrispondenti
codice:
var rightAnswers = {
domandatestoa1: "risposta1",
domandatestoa2: "risposta2",
domandatestoa3: "risposta3",
domandatestoa4: "risposta4",
domandatestoa5: "risposta5"
};
poi cerchi tutti i campi i cui ID iniziano con
e per ciascuno dei campi controlli se il suo value corrisponde al valore della chiave nell'oggetto
codice:
function contaRisposte() {
var questions = document.querySelectorAll('[id^="domandatestoa"]');
var totalRightAnswers = 0;
[].forEach.call(questions, function(question) {
if (question.value === rightAnswers[question.id]) {
totalRightAnswers++;
}
});
console.info("hai risposto correttamente a %d risposte", totalRightAnswers);
}
in questo caso le risposte sono codificate in un object, ma potresti anche inserirle in un attributo del campo di input, es.
codice HTML:
<input id="domandatestoa1" data-answer="risposta1" />
e a quel punto la condizione da controllare diventerebbe
codice:
if (question.value === question.getAttribute('data-answer')) {
totalRightAnswers++;
}
si lascia all'utente la normalizzazione delle risposte dell'utente (rimozione di spazi, conversione in lowercase)