在谷歌Chrome一些客户无法继续到我的支付页面。 当我试图提交一个表单时,我得到这个错误:

name= "无效的窗体控件不可聚焦。

这来自JavaScript控制台。

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

谁得到这个错误似乎是随机的。 有谁知道解决办法吗?


当前回答

这个错误发生在我身上,因为我提交了一个没有填写必填字段的表单。

产生此错误是因为浏览器试图集中在必填字段上,以警告用户这些字段是必填字段,但这些必填字段隐藏在一个display none div中,因此浏览器无法集中在它们上。我从一个可见的选项卡提交,所需的字段是在一个隐藏的选项卡,因此出现错误。

要解决这个问题,请确保您控制的必填字段已填满。

其他回答

如果隐藏具有必填属性的输入元素,就会发生这种情况。

不使用display:none,你可以使用不透明度:0;

我还必须使用一些CSS规则(如position:absolute)来完美地定位我的元素。

这个错误发生在我身上,因为我提交了一个没有填写必填字段的表单。

产生此错误是因为浏览器试图集中在必填字段上,以警告用户这些字段是必填字段,但这些必填字段隐藏在一个display none div中,因此浏览器无法集中在它们上。我从一个可见的选项卡提交,所需的字段是在一个隐藏的选项卡,因此出现错误。

要解决这个问题,请确保您控制的必填字段已填满。

如果您在复选框输入上得到错误,则还有另一种可能性。如果您的复选框使用自定义CSS隐藏默认并替换为一些其他样式,这也将触发不可聚焦错误在Chrome验证错误。

我发现这在我的样式表:

input[type="checkbox"] {
    visibility: hidden;
}

简单的解决方法是用这个替换它:

input[type="checkbox"] {
    opacity: 0;
}

在您的表单输入中。你把需要的保存在隐藏输入中,这就是为什么它抛出:

An invalid form control with name='' is not focusable

检查抛出无效的输入名称,您将其隐藏并保留为必需的。

只需从隐藏的输入名称中删除所需的。完成了。

如果你有这样的代码,它会显示这条消息:

<form>
  <div style="display: none;">
    <input name="test" type="text" required/>
  </div>

  <input type="submit"/>
</form>