必须为同名单选按钮组中一个元素添加checked属性,否则表单提交时该字段被完全忽略;checked是布尔属性,仅写checked或checked=""有效,不能写checked="false"。

如何让 <input type="radio"> 默认选中并确保表单提交时有值
单选按钮组默认不选中,提交时会丢失该字段——这不是浏览器 bug,而是 HTML 规范行为:radio 组中**必须至少有一个元素带 checked 属性**,否则整个组在表单序列化时被完全忽略。
实操要点:
-
checked必须是布尔属性,写成checked或checked=""都行,但不能写checked="false"(这反而会被当作真值) - 同一
name下多个radio,只允许一个带checked;若多个都写,浏览器仅以第一个为准 - 服务端接收不到该字段 ≠ 前端没传,而是前端根本没生成这个键值对(
FormData或form.serialize()中直接缺失)
用 JavaScript 动态设置默认值的常见陷阱
后端渲染不可控、或需要根据用户行为重置默认项时,常依赖 JS 设置。但直接 element.checked = true 不够,必须同步触发表单状态更新。
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
容易踩的坑:
立即学习“前端免费学习笔记(深入)”;
- 仅设置
.checked = true但未调用element.click()或element.dispatchEvent(new Event('change')),部分框架(如 Vue 的v-model)或自定义校验逻辑可能无法响应 - 在 DOM 尚未加载完成时操作,导致
querySelector返回null;建议用DOMContentLoaded或将脚本放在


















