JSFiddle - React, Tailwind, and code Playground
by Darby Rathbone
HTML
<input type="text" id='text'></input>
JavaScript
var inputEvents = function (e, cb) {
var keydownevt = function (ev) {
cb(ev);
e.addEventListener('keyup', function keyev(evt) {
cb(evt);
e.removeEventListener('keyup', keyev);
});
};
e.addEventListener('focus', function (e2) {
e.addEventListener('keydown', keydownevt);
e.addEventListener('blur', function () {
e.removeEventListener('keydown', keydownevt);
});
});
e.addEventListener('change', cb);
e.addEventListener('mousedown', function (ev) {
cb(ev)
e.addEventListener('mousemove', cb);
e.addEventListener('mouseup', function (evt) {
e.removeEventListener('mousemove', cb);
e.removeEventListener('mouseup', cb);
cb(evt);
});
});
};
var txt = document.getElementById('text');
inputEvents(txt, function (e) {
if(e.target.value !== e.target.previousvalue)
console.log(e.target.value);
e.target.previousvalue = e.target.value;
});