点击next按钮如何根据选中的Yes/No按钮跳转对应页面?现有代码不生效如何解决?
问题核心原因
- 你代码中
button1.click == true的判断逻辑完全错误:click是DOM元素的触发点击方法,不是用来记录按钮是否被点击过的状态属性,这个判断条件永远返回false,所以跳转逻辑永远不会执行 - 没有定义变量存储用户的选择状态,用户点击Yes/No按钮时没有记录对应的选中结果,点击next按钮时无法读取用户之前的选择
修复方案
你只需要新增一个变量存储用户选择,给Yes/No按钮绑定点击事件更新选中状态,再修改next的点击判断逻辑即可,完整可运行的修改代码如下:
修改后的JavaScript代码
// 存储用户选中的答案,默认空 let selectedAnswer = null; const button1 = document.getElementById("answer1"); const button2 = document.getElementById("answer2"); // 给Yes/No按钮绑定点击事件,记录选择,同时可加选中样式区分 button1.addEventListener('click', () => { selectedAnswer = 'yes'; button1.classList.add('active'); button2.classList.remove('active'); }) button2.addEventListener('click', () => { selectedAnswer = 'no'; button2.classList.add('active'); button1.classList.remove('active'); }) function displayAnswer1() { if (selectedAnswer === 'yes') { location.href = "./2_2.html"; } else if (selectedAnswer === 'no') { location.href = "./2_1.html"; } else { // 可选:用户未选择时提示操作 alert('请先选择Yes或No'); } }
可选补充CSS样式(用来区分按钮选中状态)
.ui.button.active { background: #2185d0; color: #fff; }
你原有HTML代码不需要做任何修改,直接沿用即可。
内容的提问来源于stack exchange,提问作者Amjad Abdullah
相关产品推荐
相关产品推荐

