I want to make a survey where you need to click radio buttons with value yes or no from a div and another div with another radio button will come out. These will continue until the 4th div came out.
The problem I’m encountering here is, when I re-click the 1st div button, the 3rd and 4th div won’t hide. And when i re-click the 2nd div button, the 4th div won’t hide too. Below is my code.
<form class="px-4" method="post">
<div class="form-check mb-2">
<input class="form-check-input" type="radio" name="response" value="yes" required onclick="showSolution('yes')">
<label class="form-check-label" for="radio2Example1">Yes</label>
<input class="form-check-input" type="radio" name="response" value="no" required onclick="showSolution('no')">
<label class="form-check-label" for="radio2Example2">No</label>
</div>
</form>
<!-- Recommendation Solution Section -->
<div id="solution" style="display: none;">
<hr>
<p style="text-align: left;" id="solutionText">
<!-- Recommendation Solution will be displayed here -->
</p>
<div style="text-align: center;" id="additionalSolutionRadio">
<!-- Additional Recommendation Solution Radio Buttons will be displayed here -->
</div>
</div>
<!-- Additional Recommendation Solution Section -->
<div id="additionalSolution" style="display: none;">
<hr>
<p style="text-align: left;" id="additionalSolutionText">
<!-- Additional Recommendation Solution will be displayed here -->
</p>
<div style="text-align: center;">
<input type="radio" name="additional_solution" value="yes" required onclick="showAdditionalSolution2('yes')"> Yes
<input type="radio" name="additional_solution" value="no" required onclick="showAdditionalSolution2('no')"> No
</div>
</div>
<!-- Additional Recommendation Solution 2 Section -->
<div id="additionalSolution2" style="display: none;">
<hr>
<p style="text-align: left;" id="additionalSolutionText2">
<!-- Additional Recommendation Solution 2 will be displayed here -->
</p>
</div>
<div class="w3-white w3-container w3-padding-32" style="margin-top:30px;padding-right:34px"><p class="w3-right"></a></p></div>
<script>
// Display solution based on user's response
function showSolution(response) {
var solutionText = document.getElementById("solutionText");
var solutionDiv = document.getElementById("solution");
var additionalSolutionRadio = document.getElementById("additionalSolutionRadio");
if (response === 'yes') {
solutionText.innerHTML = "Problem Identified: Operating System Errors<br><br>" +
"Recommendation solution:<br><br>" +
"Have you used the system restore points to revert to a previously stable state? For macOS, have you used Disk Utility to repair disk errors?<br>";
// Show the radio buttons for additional solution
additionalSolutionRadio.innerHTML = '<input type="radio" name="additional_solution" value="yes" required onclick="showAdditionalSolution('yes')"> Yes ' +
'<input type="radio" name="additional_solution" value="no" required onclick="showAdditionalSolution('no')"> No';
} else {
solutionText.innerHTML = "No problem identified. Your device is working fine.";
// Hide the radio buttons for additional solution
additionalSolutionRadio.innerHTML = '';
}
// Show the solution section
solutionDiv.style.display = "block";
}
// Display additional solution based on user's selection
function showAdditionalSolution(additionalSolution) {
var additionalSolutionText = document.getElementById("additionalSolutionText");
var additionalSolutionDiv = document.getElementById("additionalSolution");
if (additionalSolution === 'yes') {
additionalSolutionText.innerHTML = "Additional Recommendation: <br><br>" +
"Have you back up your data and consider reinstalling or refreshing the operating system?";
} else {
additionalSolutionText.innerHTML = "Try the system restore points to revert to a previously stable state. For macOS, used Disk Utility to repair disk errors.";
}
// Show the additional solution section
additionalSolutionDiv.style.display = "block";
}
// Display additional solution 2 based on user's selection
function showAdditionalSolution2(additionalSolution2) {
var additionalSolutionText2 = document.getElementById("additionalSolutionText2");
var additionalSolutionDiv2 = document.getElementById("additionalSolution2");
if (additionalSolution2 === 'yes') {
additionalSolutionText2.innerHTML = "Additional Recommendation 2: <br><br>" +
"Try to contact the technician if you still cannot solve the problem using the recommended solution.";
} else {
additionalSolutionText2.innerHTML = "Try to back up your data and consider reinstalling or refreshing the operating system.";
}
// Show the additional solution 2 section
additionalSolutionDiv2.style.display = "block";
}
</script>
I think I need to add the name attribute for both Additional Solution but I’m not quite sure how to add it.
I would appreciate it if someone can fix my mistakes. Thank you.