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;
});