Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
Зареждане…
Code Lab е в разработка. Постепенно добавяме нови уроци и подобрения. Прогресът може да бъде изтрит.
JAVASCRIPT FORMS / CHAPTER 05 / Учене / LESSON 07
Теория. Когато правилото ти е по-сложно от атрибути, използвай Constraint Validation API: el.setCustomValidity("текст") маркира полето като невалидно със съобщение. el.setCustomValidity("") — празният низ — го връща във валидно състояние.
Ключът е "изчисти при промяна": ако зададеш съобщение и никога не го махнеш, полето остава невалидно дори след поправка. Затова слушай събитието input и всеки път задавай или съобщение, или "".
Малък пример:
field.addEventListener("input", () => { if (field.value.length < 3) field.setCustomValidity("too short"); else field.setCustomValidity(""); });
После field.validity.valid е false, а field.validationMessage е твоето съобщение. checkValidity() връща булева стойност, reportValidity() показва балона на браузъра.
Честа грешка: setCustomValidity без нулиране; да нулираш само в submit; да слагаш съобщение на грешния елемент.
<form id="f"><input id="u1" name="u1" type="text"><input id="u2" name="u2" type="text"><button type="submit">Save</button></form>Празният низ в setCustomValidity връща полето към валидно. Без изчистване остава грешка завинаги.
Натисни Run — HTML се зарежда в sandbox iframe; Stop маха iframe-а (спира и безкраен цикъл).
›