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

React Hook Form v7输入表单字段即触发提交请求该如何解决

问题根因

你将表单提交逻辑绑定到了<form>标签的onClick事件上,只要点击表单范围内的任意区域(包括点击输入框激活输入的操作)都会触发提交逻辑,这和React Hook Form本身无关,属于事件绑定错误。

修复方法

仅需要修改<form>标签的事件绑定属性即可:
把原来的

<form
  onClick={handleSubmit(updateData)}
>

修改为

<form
  onSubmit={handleSubmit(updateData)}
>

修改后只有点击type="submit"的提交按钮时,才会触发提交逻辑。

可选优化建议

你当前的代码还有可以简化的空间:

  • handleSubmit会自动将当前表单的所有值作为参数传递给提交函数,不需要手动调用getValues获取字段值,可以把updateData修改为如下写法:
const updateData = async (formData) => {
  const data = {
    firstName: formData.firstName,
    lastName: formData.lastName,
  };
  // 后续请求逻辑保持不变
}
  • 如果你使用React Hook Form接管表单状态,不需要给<IonInput>额外绑定value属性,register已经内置了表单值的更新逻辑,额外绑定自定义state反而可能导致值不同步的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:36:01