The Current State of HTML5 Forms

The novalidate Attribute

<form novalidate>
  <input type=number name=num step=5>
</form>

Live Demo (with novalidate)

"4" would fail validation.



Live Demo (without novalidate)

"4" would fail validation.



Firefox
4+
Safari
7-
Safari Mobile
7-
Chrome
10+
Opera
10.0+
IE
10+
Android
4.2
Supported No support No support Supported Supported Supported No support

The Low Down

novalidate if a form-level attribute used to turn off validation for a form, despite the attributes of the inputs it contains (i.e. will override inputs with the required attribute, or that would otherwise fail validation).

  • Forms naturally validate, no special attributes needed. This special attribute is needed to turn that off. Include it only on the <form> opening tag.
  • You might use this if you plan to do your own client-side validation, if you want to create your own validation bubbles, or if you plan to go all server-side validation (which you need to do anyway).
  • Do not use novalidate if you simply want to internationalize or otherwise change the content of the default error messages. This can be done with JavaScript.
  • This is a classic example of why server side validation is extra important: one little change in development tools can force an entire form to skip validation allowing bad data to go through.
  • While Safari, iOS and Android to support the validation object, the form is sumbmitted whether the form validates or not, as if the novalidate attribute was always present.