使用jQuery验证复选框数组匹配预设值及处理单选答案后续逻辑
问题2:根据单选按钮的答案数组展示对应信息
你已经把选中的单选值收集到results数组里了,接下来看你是要按题目单独展示,还是按整体答案组合展示结果,给你两种常见实现思路:
思路1:按题目逐个展示对应信息
如果每个单选题目对应独立内容,比如第一题选A显示A的说明,第二题选B显示B的提示,可以这样写:
<!-- 先在页面上准备一个展示信息的容器 --> <div id="result-info"></div>
$('input[type="radio"]').on('change', function() { var results = $('input[type="radio"]:checked').map(function() { return this.value; }).get(); // 先清空之前的内容 $('#result-info').empty(); // 处理第一题的答案(results[0]是第一题选中的值) if (results[0] === "A") { $('#result-info').append('<p>第一题选A:你掌握了基础概念</p>'); } else if (results[0] === "B") { $('#result-info').append('<p>第一题选B:你对进阶内容更感兴趣</p>'); } // 处理第二题的答案(results[1]是第二题选中的值) switch(results[1]) { case "C": $('#result-info').append('<p>第二题选C:符合行业最佳实践</p>'); break; case "D": $('#result-info').append('<p>第二题选D:你有独特的思路</p>'); break; } // 可选:确保所有题目都选完再展示完整内容 const totalQuestions = 2; // 假设总共有2道题 if (results.length < totalQuestions) { $('#result-info').append('<p>请完成所有题目哦</p>'); } });
思路2:根据答案组合展示整体结果
如果需要根据所有题目的答案组合给出统一结果,可以用对象做映射:
// 定义答案组合和对应结果的映射表 const answerMap = { "A,C": "你的答案组合是A+C,综合评价:基础扎实且符合规范", "B,D": "你的答案组合是B+D,综合评价:勇于尝试创新方案", "A,D": "你的答案组合是A+D,综合评价:基础+创新,值得探索" }; $('input[type="radio"]').on('change', function() { var results = $('input[type="radio"]:checked').map(function() { return this.value; }).get(); const totalQuestions = 2; if (results.length !== totalQuestions) { $('#result-info').text("请完成所有题目选择"); return; } // 将数组转成逗号分隔的字符串作为键 const answerKey = results.join(','); // 从映射表中获取对应结果,没有的话显示默认提示 const finalResult = answerMap[answerKey] || "暂无对应结果,请检查你的选择"; $('#result-info').text(finalResult); });
内容的提问来源于stack exchange,提问作者user366006
相关产品推荐
相关产品推荐

