I'd love to achieve that the button below the User-Id is disabled until the user agrees with the rules for the game by clicking on a checkbox. I already have a code which was sent by a friend. But my problem is that it doesn't work on the actual page. I assume it doesn't because the JS-Script isn't connect correctly in the HTML script. How do I connect correctly the script?
Here’s the code of JavaScript:
function input(event) {
const checked = document.getElementById("startgame").checked;
const button = document.getElementById("startbutton");
if (checked) {
button.disabled = false;
return;
alert("Herzlichen Glückwunsch! Sie haben sich erfolgreich angemeldet. Das Spiel beginnt, sobald sie den Knopf betätigen.")
} else
button.disabled = true;
alert("Es tut us leid. Jedoch müssen Sie zuerst unsere Regeln akzeptieren.")
}
Here’s my HTML script:
<div class="quiz-menu" data-aos="fade-up" data-aos-duration="3000">
<div class="rules">
<h1 class="rules-title"><i class="fas fa-scroll"></i> RULES!</h1>
<p class="rules-text">
<center>
<b>
Damit das Quiz Ihnen nicht zu einfach gemacht wird; gibt es ein paar Regeln. Lesen Sie diese bitte durch:
</b>
</center>
</p>
<p class="rules-list">
1. Hilfsmittel (wie z.B. Websiten) werden blockiert;
<br>
<br />
2. Sie haben <i>alle Zeit der Welt</i>. Überstressen Sie sich also nicht und denken sie mit Ruhe nach.
<br><br />
3. Seien Sie nicht enttäuscht, wenn sie fehler haben. Sie können diesen Test jeder Zeit wiederholen -
und sich verbessern.
</p>
</div>
<div class="user-id">
<div class="user-background" data-aos="flip-down" data-aos-duration="3000">
<h2 class="user-title">USER-ID</h2>
<p class="user-text">
Damit Sie unseren Highscore auch richtig nutzen können,
bitten wir sie, dass sie sich einen Usernamen ausdenken.
</p>
<form action="/action_page.php" class="quizform">
<label for="nname" class="formtext"><b>Nickname:</b></label><br>
<input type="text" id="fname" name="nname" value="Dein Username">
<br><br />
<input type="checkbox" id="startgame" name="startgame" value="startgame">
<label for="startgame"> Um das Spiel zu starten, muss du die Checkbox ankreuzen</label><br>
<br>
</form>
</div>
</div>
<div>
<a href="kategorieeins.html" class="quiz-button" id="startbutton"><span><i class="fas fa-play"></i> quiz starten</span></a>
</div>
</div>
CodePudding user response:
you have function input(event) then call it on checkbox change event like using below code snippet
<input type="checkbox" id="startgame" name="startgame" value="startgame" onchange="input(this)">
you have to add button inside a tag so you can enable diable it on checkbox selection so I change your a tag with this
<a href="kategorieeins.html" class="quiz-button"><button id="startbutton" disabled><i class="fas fa-play"></i> quiz starten</button></a>
here is a working demo hope easy to understand.
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
function input(event) {
const checked = document.getElementById("startgame").checked;
const button = document.getElementById("startbutton");
if (checked) {
button.disabled = false;
return;
alert("Herzlichen Glückwunsch! Sie haben sich erfolgreich angemeldet. Das Spiel beginnt, sobald sie den Knopf betätigen.")
} else
button.disabled = true;
alert("Es tut us leid. Jedoch müssen Sie zuerst unsere Regeln akzeptieren.")
}
function showAlert()
{
alert("Herzlichen Glückwunsch! Sie haben sich erfolgreich angemeldet. Das Spiel beginnt, sobald sie den Knopf betätigen.")
}
</script>
</head>
<body>
<div class="quiz-menu" data-aos="fade-up" data-aos-duration="3000">
<div class="rules">
<h1 class="rules-title"><i class="fas fa-scroll"></i> RULES!</h1>
<p class="rules-text">
<center>
<b>
Damit das Quiz Ihnen nicht zu einfach gemacht wird; gibt es ein paar Regeln. Lesen Sie diese bitte durch:
</b>
</center>
</p>
<p class="rules-list">
1. Hilfsmittel (wie z.B. Websiten) werden blockiert;
<br>
<br />
2. Sie haben <i>alle Zeit der Welt</i>. Überstressen Sie sich also nicht und denken sie mit Ruhe nach.
<br><br />
3. Seien Sie nicht enttäuscht, wenn sie fehler haben. Sie können diesen Test jeder Zeit wiederholen -
und sich verbessern.
</p>
</div>
<div class="user-id">
<div class="user-background" data-aos="flip-down" data-aos-duration="3000">
<h2 class="user-title">USER-ID</h2>
<p class="user-text">
Damit Sie unseren Highscore auch richtig nutzen können,
bitten wir sie, dass sie sich einen Usernamen ausdenken.
</p>
<form action="/action_page.php" class="quizform">
<label for="nname" class="formtext"><b>Nickname:</b></label><br>
<input type="text" id="fname" name="nname" value="Dein Username">
<br><br />
<input type="checkbox" id="startgame" name="startgame" value="startgame" onchange="input(this)">
<label for="startgame"> Um das Spiel zu starten, muss du die Checkbox ankreuzen</label><br>
<br>
</form>
</div>
</div>
<div>
<a href="kategorieeins.html" class="quiz-button"><button onclick="showAlert()" id="startbutton" disabled><i class="fas fa-play"></i> quiz starten</button></a>
</div>
</div>
</body>
</html>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>