JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text"  />
<br />
result: <div id="result"></div><br />
<br /><br />
<button>change value</button>

CSS

#result{height: 30px; display: inline-block; background: #f3f3f3; width: 150px;}

JavaScript

$("input").change(function(){
   $("#result").text($(this).val()); 
});

$("button").click(function(){
   $("input").val(Math.random()); 
});

(function($){
    var originalVal = $.fn.val;
    $.fn.val = function(){
        var result =originalVal.apply(this,arguments);
        if(arguments.length>0)
            $(this).change();
        return result;
    };
})(jQuery);