协慌网

登录 贡献 社区

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

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

名称 ='' 的无效表单控件不可聚焦。

这来自 JavaScript 控制台。

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

似乎谁得到此错误是随机的。有谁知道解决方案吗?

答案

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

由于多种原因,在触发验证时,表单控件可能无法聚焦。下列两种情况是最主要的原因:

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

  • 由于用户按输入上的 ENTER 键,可能会发生过早验证。或者用户单击按钮 / 输入控件的形式尚未type属性。如果按钮的 type 属性未设置为button ,Chrome(或其他任何浏览器)都会执行一次验证,因为submit是按钮的type属性的默认值。

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

另请参阅https://stackoverflow.com/a/7264966/1356062

novalidate属性将有助于:

<form name="myform" novalidate>

form ,您可能隐藏了具有required属性的input

  • <input type="hidden" required />
  • <input type="file" required style="display: none;"/>

form不能专注于这些元素, required元素,或者在 javascript 中实现验证功能以处理它们。