在 Google Chrome 浏览器中,某些客户无法进入我的付款页面。尝试提交表单时出现此错误:
名称 ='' 的无效表单控件不可聚焦。
这来自 JavaScript 控制台。
我读到问题可能是由于隐藏字段具有必填属性。现在的问题是,我们使用的是. net Webforms 必需的字段验证器,而不是 html5 必需的属性。
似乎谁得到此错误是随机的。有谁知道解决方案吗?
如果表单字段验证失败,则在 Chrome 上会发生此问题,但是由于相应的无效控件无法聚焦,浏览器尝试在其旁边显示消息 “请填写此字段”的尝试也失败了。
由于多种原因,在触发验证时,表单控件可能无法聚焦。下列两种情况是最主要的原因:
根据业务逻辑的当前上下文,该字段无关紧要。在这种情况下,应该禁用相应的控件或将其从 DOM 中删除,或者此时不要将其标记为required
属性。
由于用户按输入上的 ENTER 键,可能会发生过早验证。或者用户单击按钮 / 输入控件的形式尚未type
属性。如果按钮的 type 属性未设置为button
,Chrome(或其他任何浏览器)都会执行一次验证,因为submit
是按钮的type
属性的默认值。
要解决该问题,如果页面上有一个按钮除了执行提交或重置操作外还执行其他操作,请始终记住执行以下操作: <button type="button">
。
向novalidate
属性将有助于:
<form name="myform" novalidate>
在form
,您可能隐藏了具有required
属性的input
<input type="hidden" required />
<input type="file" required style="display: none;"/>
form
不能专注于这些元素, required
元素,或者在 javascript 中实现验证功能以处理它们。