name='' 的无效表单控件不可聚焦

新手上路,请多包涵

在谷歌浏览器中,一些客户无法进入我的付款页面。尝试提交表单时出现此错误:

name=” 的无效表单控件不可聚焦。

这是来自 JavaScript 控制台。

我读到问题可能是由于隐藏字段具有必需的属性。现在的问题是我们使用的是 .net webforms 必填字段验证器,而不是 html5 必填属性。

谁得到这个错误似乎是随机的。有没有人知道这个的解决方案?

原文由 mp1990 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 432
2 个回答

如果表单字段验证失败,Chrome 就会出现此问题,但由于相应的无效控件不可聚焦,浏览器尝试在其旁边显示消息 “请填写此字段” 的尝试也失败了。

由于多种原因,表单控件在触发验证时可能无法获得焦点。下面描述的两种情况是最突出的原因:

  • 根据业务逻辑的当前上下文,该字段是不相关的。在这种情况下,应从 DOM 中禁用或删除相应的控件,或者此时不使用 required 属性进行标记。

  • 由于用户在输入上按下 ENTER 键,可能会发生过早验证。或者用户单击未正确定义控件的 type 属性的表单中的按钮/输入控件。如果按钮的类型属性未设置为 button ,Chrome(或与此相关的任何其他浏览器)会在每次单击按钮时执行验证,因为 submit 是默认值按钮的 type 属性。

要解决此问题,如果您的页面上有一个按钮执行 提交重置 以外的其他操作,请始终记住执行此操作: <button type="button">

原文由 Igwe Kalu 发布,翻译遵循 CC BY-SA 4.0 许可协议

添加 novalidate 属性到表单将有助于:

 <form name="myform" novalidate>

原文由 user2909164 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题