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

给登录表单添加注册跳转按钮时如何避免触发必填校验

问题核心原因
  • 当前注册按钮的实现存在两处关键错误,直接触发了表单必填校验提示:
    1. 按钮未显式声明type属性:浏览器默认会把表单内没有标注type的<button>识别为提交按钮,点击时会触发整个登录表单的校验流程,因此会弹出邮箱、密码为必填的提示。
    2. href是<a>标签的专属跳转属性,原生<button>本身不支持该属性,就算跳过了校验流程,点击也不会正常跳转至注册页面。
可行解决方案

可以根据自己的样式需求,选择以下任意一种实现,直接放在登录按钮下方即可:

方案1:使用链接标签实现(零脚本依赖,推荐)

直接用<a>标签搭配现有按钮的样式类做视觉统一,因为不属于表单提交控件,不会触发必填校验,同时天然支持跳转功能:

<a href="{{ url('register') }}" class="btn">
  {{ _("Create an Account!") }}
</a>

注:class属性替换成你当前登录按钮使用的样式类,即可保证两个按钮视觉风格一致,不需要额外写样式。

方案2:保留button结构实现

如果必须使用<button>标签作为注册入口,需要补充两个关键属性修正默认行为:

  1. 显式声明type="button",告知浏览器该按钮不参与表单提交流程,跳过默认校验
  2. 用点击跳转逻辑替代无效的href属性
    示例代码:
<button 
  type="button" 
  onclick="window.location.href='{{ url('register') }}'"
>
  {{ _("Create an Account!") }}
</button>
通用避坑提示
  • 所有放在<form>标签内部的交互按钮,必须显式标注对应的type属性,不要依赖浏览器的默认推断,避免出现非预期的表单提交行为。
  • 不要尝试给注册按钮加novalidate属性,那是给表单整体加的属性,会直接关掉登录本身的必填校验,反而影响登录功能的正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 07:15:05