Ich habe ein mehrseitiges Quiz erstellt, und ich verwende die SessionStorage-API, um die Punkte zu berechnen und die Endbewertung auf der letzten Seite anzuzeigen. Jedes Mal habe ich eine erste Seite mit dem Quiz. < /P>
Answer one
Answer two
MAnswer three
const handleSubmit = function() {
const check1 = document.getElementById('q4resp1').checked;
const check2 = document.getElementById('q4resp2').checked;
const check3 = document.getElementById('q4resp3').checked;
const q4 = {
1: check1,
2: check2,
3: check3,
}
window.sessionStorage.setItem('q1', JSON.stringify(q1));
window.location.href = 'question-1-answer.html';
}
buttons.forEach(button => {
button.addEventListener('click', (e) => {
e.preventDefault();
handleSubmit();
})
});
< /code>
Dann eine zweite Seite mit der Antwort: < /p>
const previousChecks = JSON.parse(window.sessionStorage.getItem('q1'));
let score = Number(window.sessionStorage.getItem('score'));
if (!previousChecks[3]) {
score += 1;
window.sessionStorage.setItem('score', String(score));
}
< /code>
Ich habe daher zwei Seiten für jeden Schritt des Quizs. (Eine Frageseite, eine Antwortseite, eine Frageseite, eine Antwortseite usw.).
const score = window.sessionStorage.getItem('score');
document.getElementById('result').innerHTML = score === 0 ? 0 : ((score *100 ) / 5) + '%';
< /code>
Das Problem: Sobald das Quiz beendet ist, wenn ich auf die Back -Taste des Browsers klicke, um zur letzten Frage zurückzukehren (also zwei Seiten zurück), wird automatisch den vorherigen Punkt verwendet, gespeichert in der Sitzung und fügen hinzu. Die akkumulierten Punkte für die Fragen 4 und 5 und so weiter. Dies soll ein zuverlässiges Ergebnis gewährleisten und 100%nie überschreiten. Sollte ich die Frageseite oder die Antwortseite ansprechen? Wie kann ich es so schaffen, dass die Punkte abgesagt werden, wenn es welche gegeben, aber nicht weggenommen wird, wenn es keine gab?>
Quiz und SessionStorage: Wie kann man die Punktakkumulation mit der Schaltfläche "Zurück" verhindern? ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Ändern Sie VAR auf 0 nach der Schaltfläche Klicken Sie auf die Schaltfläche
by Anonymous » » in HTML - 0 Replies
- 18 Views
-
Last post by Anonymous
-