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

React表单提交后如何重置单选按钮?文本框已实现重置

解决React表单单选按钮重置问题

问题出在你的单选按钮没有和state做受控绑定——缺少checked属性,导致重置state时单选按钮的选中状态不会同步更新。

修复步骤:

  • 给每个单选按钮添加checked属性,将其与user.gender的值关联,判断当前按钮的value是否等于user.gender
  • 保持提交时的setUser逻辑不变,将gender设为空字符串即可取消所有单选按钮的选中状态

修改后的单选按钮代码:

<div className="radio">
    <span>
        <input
            type="radio"
            id="male"
            value="male"
            name="gender"
            checked={user.gender === "male"}
            onChange={(e) =>
                setUser((prev) => ({
                    ...prev,
                    gender: e.target.value,
                }))
            }
        />
        <label htmlFor="male">Male</label>
    </span>
    <span>
        <input
            type="radio"
            id="female"
            value="female"
            name="gender"
            checked={user.gender === "female"}
            onChange={(e) =>
                setUser((prev) => ({
                    ...prev,
                    gender: e.target.value,
                }))
            }
        />
        <label htmlFor="female">Female</label>
    </span>
</div>

原理说明:

React中单选按钮属于受控组件,需要通过checked属性来控制选中状态。当你点击提交按钮,将user.gender设为空字符串时,两个单选按钮的checked条件都会不成立,从而自动取消选中状态,实现表单重置的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:45:32