HTML5的novalidate和formnovalidate属性有什么区别?

44

w3c学校提供以下定义:

novalidate

当存在时,它指定在提交时不应验证表单数据(输入)。

formnovalidate

当存在时,它指定不应在提交时验证该元素。

提交按钮中使用formnovalidate与在表单中使用novalidate有什么区别吗?

(我真的不明白其中的区别)

1个回答

60

novalidate 属性应用于表单,可以使表单不被验证;formnovalidate 属性应用于提交按钮,它会覆盖 novalidate 选项(如果存在),表示“不论总体表单设置如何,都要提交此表单而无需验证”。

规范中给出的示例是当用户正在保存数据而非发布数据时;这些数据可能不完整且无效,但无需经过验证即可保存。


4
formnovalidate也可以用于输入元素上,这样整个表单会被验证,但不包括该输入元素。 - Joris de Ruiter
我们正在谈论客户端验证(在浏览器中的验证)。 - Joris de Ruiter
3
这个对我不起作用:<input type="number" name="futureDailyAdSpend" value="138.03" step="50" min="50" formnovalidate/>。我收到了这个错误信息:"请输入有效值。最近的两个有效值分别是100和150。"。 - Ryan
2
@JorisdeRuiter,这似乎不是正确的,至少在Chrome中不是这样。您无法针对每个字段禁用验证。 - mpen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接