纯html+js可实现本地演示投票页:用radio单选+label增强可访问性,js通过localstorage存取选项避免刷新丢失,提交时preventdefault()阻止跳转,并检查是否已投票。

怎么用纯 HTML + JavaScript 实现一个可提交的投票页面
纯 HTML 本身不能处理投票逻辑或保存结果,必须搭配 JavaScript(前端交互)和后端(如 PHP/Node.js)才能完成真实投票。但如果你只是要做一个「演示用」或「本地测试用」的静态投票页,可以用 localStorage 模拟记录,避免报错或刷新丢失数据。
- 用户点击选项 → 触发
onclick或addEventListener,更新选中状态 - 提交按钮调用函数,把选中的
value存进localStorage,比如localStorage.setItem('vote', 'option2') - 页面加载时用
localStorage.getItem('vote')恢复上次选择,避免重复投 - 别用
form默认提交(会跳转或刷新),加event.preventDefault()
为什么直接用 <input type="radio"> 就够用,不用框架
投票本质是单选,radio 天然支持同名互斥,语义正确、无障碍友好、移动端点击区域大。强行套 React/Vue 反而增加体积和调试成本。
- 所有选项必须有相同的
name属性,例如name="choice" - 每个
input配一个label,用for绑定id,提升可点击范围 - 禁用默认表单行为:给
button设type="button",否则在form内会触发表单提交 - 不要用
div+onclick模拟 radio——无法用空格键切换、不被屏幕阅读器识别
常见错误:点了没反应 / 提交后清空 / 刷新就重置
这些问题基本都出在事件绑定时机或存储逻辑上,不是 HTML 写错了,而是 JS 执行顺序或作用域不对。
-
document.getElementById在 DOM 加载前执行 → 把 JS 放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











