在谷歌Chrome中,一些客户无法进入我的支付页面。当尝试提交表单时,我遇到以下错误:
name=''的无效窗体控件不可聚焦。
这是来自JavaScript控制台的。
我读到这个问题可能是由于隐藏的字段具有必需的属性。现在的问题是,我们使用的是.NET webforms required字段验证器,而不是html5 required属性。
谁得到这个错误似乎是随机的。有没有人知道解决这个问题的办法?
在Chrome上,如果一个表单字段未通过验证,但由于相应的无效控件无法聚焦,浏览器试图在其旁边显示“请填写此字段”的消息也会失败,则会出现此问题。
由于几个原因,窗体控件在触发验证时可能不可聚焦。以下两种情况是最突出的原因:
>
根据业务逻辑的当前上下文,该字段是不相关的。在这种情况下,应该禁用或从DOM中删除相应的控件,或者在此时不使用required
属性进行标记。
由于用户在输入上按ENTER键,可能会发生过早验证。或者用户单击窗体中的按钮/输入控件时,该控件未正确定义控件的type
属性。如果按钮的type属性未设置为button
,Chrome(或任何其他浏览器)每次单击按钮时都会执行验证,因为submit
是按钮type
属性的默认值。
若要解决此问题,如果您的页面上有一个按钮执行“提交”或“重置”以外的其他操作,请始终记住执行以下操作:。
另请参阅https://stackoverflow.com/A/7264966/1356062
将novalidate
属性添加到表单将有所帮助:
<form name="myform" novalidate>