【发布时间】:2015-08-19 02:38:18
【问题描述】:
我面临着众所周知的 Chrome 的“不可聚焦输入”错误,但我的情况与我可以在那里找到的另一篇文章中的解释不同。
我在一个明确的输入上首先复制了这个错误消息,这个输入没有必需的属性: 代码:
<fieldset>
<label>Total (montaje incl.)</label>
<input type="number" id="priceFinal" name="priceFinal"> €
</fieldset>
错误: name='priceFinal' 的无效表单控件不可聚焦。
当用户填写表单时,该字段通过带有 jquery 的 js 脚本获取其值。用户在另一个输入中输入尺寸,脚本对尺寸值进行数学运算,然后使用 jquery 函数将结果放入“priceFinal”输入中:.val()
在浏览器中我们可以看到输入正确填写,当时没有显示错误。并且使用“novalidate”解决方案一切正常,所以我认为它不能对 nofocusable 错误负责。
然后我得到了同样的错误,输入没有我没有写并且在我的 DOM 中不存在的没有名称:
name='' 的无效表单控件不可聚焦。
这很奇怪,因为我的表单中唯一没有名字的输入是 type:submit one
<input type="submit" class="btn btn-default" value="Ver presupuesto" />
我有一些必填字段,但我总是在发送表单时检查它们是否都已填写。我粘贴它以防万一:
<fieldset>
<input type="text" id="clientName" name="clientName" placeholder="Nombre y apellidos" class="cInput" required >
<input type="text" id="client_ID" name="client_ID" required placeholder="CIF / NIF / DNI" class="cInput">
</fieldset>
<fieldset>
<input type="text" id="client_add" name="client_add" placeholder="Dirección de facturación" class="addInput" required >
</fieldset>
<fieldset>
<input type="text" id="client_ph" name="client_ph" placeholder="Teléfono" class="cInput" required>
<input type="email" id="client_mail" name="client_mail" placeholder="Email" class="cInput" required>
</fieldset>
novalidate 解决方案清除了错误,但并没有修复它,我的意思是必须有一种方法来解决它而无需 hack。
有人知道会发生什么吗? 谢谢
【问题讨论】:
-
您是否有一个按钮控件在使用表单时被单击? - 如果是,按钮的类型属性是否正确设置? - 如果按钮不会导致表单提交,则必须将其 type 属性显式设置为 button:
<button type="button"></button>.
标签: html forms validation google-chrome