使用HTML、JS和表单制作简单测验的结果显示问题求助
你的极简测验代码问题排查与修复
嘿,我帮你看看这个极简测验的问题哈!从你给出的截断代码来看,大概率是这几个地方出了问题,咱们一步步捋:
1. 表单元素没写全或标识错误
你提到有两个问题,但当前HTML里只显示了问题1的部分,答案输入区域的代码还没写完(看到<l...就断了)。首先要保证每个问题的答案输入框有清晰的id,这样JS才能准确拿到用户输入的值。
给你补全一个合理的HTML结构参考:
<body> <table> <tr> <th>Questions</th> <th>Answer</th> </tr> <tr> <td id="q1"> Water is <ol> <li> Wet</li> <li> Ordinary</li> <li>Purify </li> <li> Water</li> </ol> </td> <td> <!-- 给输入框加id,方便JS获取 --> <input type="text" id="ans1" placeholder="输入选项序号"> </td> </tr> <tr> <td id="q2"> 举个例子:2+2=? <ol> <li> 3</li> <li> 5</li> <li>2 </li> <li> 4</li> </ol> </td> <td> <input type="text" id="ans2" placeholder="输入选项序号"> </td> </tr> </table> <!-- 绑定批改按钮的点击事件 --> <button onclick="checkQuiz()">批改测验</button> <!-- 用来显示结果的容器 --> <div id="result" style="margin-top:20px;font-size:18px;"></div> <!-- 引入外部JS文件,注意路径要对 --> <script src="your-quiz-script.js"></script> </body>
2. JS文件里的逻辑或DOM操作出错
这是最容易踩坑的地方,常见问题有这几个:
- 没正确获取输入框的值(比如忘了加
.value,或者id拼写错了) - 条件判断逻辑写反或者写错(比如把「或」
||写成「且」&&,或者没注意用户输入的是字符串,你用数字去比较) - 找不到显示结果的元素,或者修改颜色的方式不对
给你写个正确的外部JS代码示例:
function checkQuiz() { // 获取用户输入,记得trim()去掉首尾空格,避免用户不小心输了空格导致判断失败 const userAns1 = document.getElementById('ans1').value.trim(); const userAns2 = document.getElementById('ans2').value.trim(); // 获取用来显示结果的元素 const resultBox = document.getElementById('result'); // 你的需求:问题1答案是"1" 或者 问题2答案是"4"就显示绿色,否则红色 if (userAns1 === '1' || userAns2 === '4') { resultBox.textContent = '答对啦!'; resultBox.style.color = '#2ecc71'; // 柔和的绿色 } else { resultBox.textContent = '答错了哦,再试试?'; resultBox.style.color = '#e74c3c'; // 柔和的红色 } }
3. 容易忽略的小细节
- 确保外部JS文件的路径正确!如果JS和HTML在同一个文件夹里,
src里直接写文件名就行,别写错大小写 - 如果输入框用了
type="number",那用户输入的是数字类型,这时候判断要改成userAns1 === 1,但更推荐用text类型,避免用户输入非数字时出现异常 - 按钮的
onclick事件名要和JS里的函数名完全一致(大小写也要对!比如checkQuiz不能写成checkquiz)
你对照着上面的内容检查自己的代码,应该就能找到问题啦!
内容的提问来源于stack exchange,提问作者Mac McGuy
相关产品推荐
相关产品推荐

