JS událost oninput
JavaScriptová událost oninput
zachytí práci s formulářovými políčky.
Odchytávání stavu, že uživatel něco dělá s formulářovým elementem <input>
není úplně jednoduché.
Událost onchange
<input type=text>
Například událost onchange
u značky <input>
reaguje, až když se ztratí :focus
.
<input type=range>
U <input type=range>
je potom pro některé prohlížeče změna už samotné přesouvání jezdce a jinde se onchange
vyvolá až při uvolnění tlačítka myši.
<select>
<input type=radio>
Události onkeyup
, onkeydown
, onkeypress
Pokud jsme tedy v textovém <input>
u chtěli reagovat na každé napsané písmeno, bylo nutné odchytávat stisk klávesy.
onkeyup
onkeydown
onkeypress
onpaste
Problém pochopitelně nastane, když návštěvník bude chtít obsah vkládat ze schránky přes kontextové menu myší a podobně. Potom je řešení potřebnou událost spustit i při onpaste
a pro případ, že se obsah přesune do pole myší ještě pro onfocus
.
Událost oninput
Událost oninput
, funkční od IE 9 by tuto nejednotnost měla řešit a spouštět se vždy, když se s políčkem nějak pracuje.
Kromě staré Opery 12 všechny prohlížeče vyvolají oninput
jen u textového pole, <input type=range>
a <textarea>
.
Textové políčko
Posuvník
Textarea
Zaškrtávátko
U následujících prvků už oninput
v nových prohlížečích nic nedělá.
Přepínač
V Opeře 12 je zajímavé, že se oninput
vyvolá na obou <input>
ech.
Komentáře