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

单选框输入存储"on"而非指定性别值,添加enum后触发验证错误求助

解决Radio按钮提交后数据库存储"on"而非预期性别值的问题

问题根源

你的radio输入框未设置value属性,浏览器提交未指定value的radio时,会默认发送字符串"on",这直接导致数据库存储错误值,后续添加enum验证时自然触发不匹配的ValidationError。

修复前端代码

需要给每个radio按钮添加对应的value属性,同时修正label的for属性与input的id关联(提升交互体验):

<label for="gender-female">Female</label>
<input type="radio" name="gender" id="gender-female" value="female">
<label for="gender-male">Male</label>
<input type="radio" name="gender" id="gender-male" value="male">
<label for="gender-trans">Transgender</label>
<input type="radio" name="gender" id="gender-trans" value="transgender">
<span class="formerror"></span>

关键修改说明

  • 每个radio的value属性设置为你预期存储的字符串:"female"、"male"、"transgender",提交时会把选中选项的value传给后端
  • 修正label的for属性与对应radio的id一致,这样点击标签文字就能选中对应的radio选项,优化用户操作

后端验证

你当前的Mongoose Schema enum配置是正确的:

gender: {
  type: String,
  enum: ["female", "male", "transgender"],
  required: true
},

修复前端后,提交的gender值会完全符合enum规则,不会再触发ValidationError,数据库也会存储预期的性别字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:53:16