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

Next.js中Shadcn Form+React Hook Form+Zod Resolver表单无法提交

问题排查与解决方案

核心问题:提交按钮未设置type="submit"

你的提交按钮未指定type="submit"属性,默认情况下按钮的type为button,不会触发表单的onSubmit事件。修改Button组件:

<Button size="lg" disabled={isLoading} type="submit">
  {initialData ? "Edit your companion" : "Create your companion"}
  <Wand2 className="w-4 h-4 ml-2" />
</Button>

额外校验问题排查

如果修复按钮后仍无法提交,检查以下几点:

  • categoryId默认值不匹配Zod规则:默认值里categoryId: undefined,但Zod要求为string类型,修改默认值为空字符串:
    defaultValues: initialData || {
      name: "",
      description: "",
      instructions: "",
      seed: "",
      src: "",
      categoryId: "", // 替换undefined
    },
    
  • ImageUpload组件值同步问题:确认ImageUpload组件的onChange正确将值传递给field.onChange,否则src字段为空会触发Zod校验失败,导致表单无法提交。可临时通过console.log(form.watch('src'))确认值是否正确更新。
  • 表单校验状态查看:添加代码查看表单的校验错误,确认是否存在隐藏的校验失败:
    const { errors } = form.formState;
    console.log("Form Errors:", errors);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 14:07:01