You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS问卷提交后结果瞬即重置,需添加未成年提示功能

解决测验问卷的两个问题:结果闪消失+年龄提示

看起来你碰到了两个典型的前端表单问题,我来一步步帮你搞定:

问题1:测验结果仅显示半秒就自动重置

这个问题几乎肯定是表单提交触发了页面默认刷新导致的。浏览器在表单提交后会默认重新加载页面,所以你的结果刚显示就被刷新没了。解决办法是阻止表单的默认提交行为:

实现步骤:

  1. 给你的表单绑定submit事件处理函数
  2. 在处理函数里调用event.preventDefault()来阻止页面刷新
  3. 确保结果展示逻辑在阻止默认行为之后执行

示例代码(假设你的表单id是quizForm):

// 获取表单元素
const quizForm = document.getElementById('quizForm');

// 监听提交事件
quizForm.addEventListener('submit', function(e) {
  // 阻止页面默认刷新
  e.preventDefault();
  
  // 执行测验结果计算和展示逻辑
  showQuizResults();
  
  // 调用年龄检查函数
  checkAge();
});

问题2:未满18岁提交时弹出提示(不阻止查看答案)

你现有的checkAge函数逻辑没问题,但要确保它在结果展示之后触发,而且不要用它来阻止表单提交(因为你不想阻止用户看答案)。

优化后的checkAge函数及调用时机:

先确认你已正确获取用户输入的年龄值,再调整函数逻辑避免无效输入:

function checkAge() {
  // 从输入框/单选组获取年龄值,确保是数值类型
  const ageInput = document.getElementById('ageInput');
  const age = parseInt(ageInput.value);
  
  if(age < 18 && !isNaN(age)) { // 过滤非数字的无效输入
    alert("Always make sure you have adult supervision while caring for and handling any venomous arachnid....");
  }
}

把这个函数放在结果展示逻辑之后调用,这样用户先看到结果,再收到提示(alert弹窗不会影响已经渲染完成的结果展示)。

完整流程总结

  1. 阻止表单默认提交行为,避免页面自动刷新
  2. 计算并展示测验结果
  3. 检查用户年龄,弹出提示(不干扰结果查看)

这样修改后,你的测验结果就能稳定显示,同时未满18岁的用户会收到友好提示,又不影响他们查看答案。

内容的提问来源于stack exchange,提问作者cryceks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:33:22