O webu
Atribut novalidate

Při používání pokročilejších pokročilejších typů značky <input> je ve výchozím stavu přítomna jistá automatická validace.

Například políčko <input type="email"> požaduje platnou e-mailovou adresu. Ověření proběhne při odeslání formuláře.

Atributem novalidate jde toto výchozí chování vypnout:

<form novalidate>
</form>

Živá ukázka – test formuláře s/bez výchozí validace

Proč validaci vypnout

Výchozí HTML 5 validace není úplně optimální. Lepšího výsledku jde zpravidla dosáhnout vlastní validací v JavaScriptu, která nemá následující nedostatky:

  1. Nedostatečná podpora napříč prohlížeči. U HTML 5 validace je například políčko pro e-mail podporované až v IE 10.

  2. Nejistá kontrola nad výsledkem. Někdy se zvláštní typy políček používají hlavně k tomu, aby na mobilních zařízeních byla nabídnuta lepší podoba klávesnice. To je dobré chování, které ale doprovází i výchozí validace, která nemusí vyhovovat.

Výchozí validace

Text hlášek výchozí validace změnit jde. Problematická může být přílišná nebo nedostatečná benevolence k zadaným datům.

Například u e-mailu si lze představit tři stupně přísnosti:

  1. Vyžadovat přesný tvar „email@example.com“.
  2. Tolerovat a oříznout tzv. bílé znaky, tedy akceptovat i „ email@example.com“.
  3. Spokojit se s výskytem e-mailu, tj. akceptovat i „cokoliv email@example.com“. Takový případ může nastat při nešikovném kopírování.

Výchozí validace formulářů používá většinou první nebo druhý způsob.

Výhoda

Výhoda HTML 5 validace je ale ve své jednoduchosti nasazení a se selektory :valid a :invalid jde provádět i něco jako primitivní ověřování během psaní.