Kódování HTML formulářů bylo bolestné celou moji kariéru. Ovládací prvky formuláře vypadají mezi operačními systémy a prohlížeči odlišně, ověřování na straně klienta a serveru je noční můrou a nevyhnutelně někde zapomenete. Některá chování nefungují tak, jak byste doufali, například onChange
, který se spustí pouze tehdy, když uživatel odejde (blur
s) daný formulář ovládá. Zadejte onInput
událost, která se změní po stisknutí klávesy, vložení atd.
// Try it here: https://codepen.io/darkwing/pen/KKmBNvg myInput.addEventListener('input', e => { console.log(e.target.value); });
Dnes to vypadá jako starý onChange
chování není užitečné – vždy chceme reagovat na jakýkoli vstup uživatele. onInput
spouští se také u prvků s contenteditable
a designmode
atributy. Většina moderních knihoven JavaScriptu jako React zpracovává onChange
jako onInput
, takže je to jako onChange
ztratilo využití!