JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" id="test" value="Test">
<button id="btn1">Button 1</button>
<button id="btn2">Button 2</button>

JavaScript

$.fn.valChange = function(){
    var prev;
    if ( arguments.length > 0 ){
        prev = $.fn.val.apply(this, []);
    }
    var result = $.fn.val.apply(this, arguments);
    if ( arguments.length > 0 && prev != $.fn.val.apply(this, []) ){
        $(this).trigger("change");
    }
    return result;
};

$(function(){
    
    $("#test").change(function(){
        alert("The value has changed");
    });
    
    $("#btn1, #btn2").click(function(){
        $("#test").valChange($(this).text());
    });
    
});