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