El evento de entrada no funciona si el valor se cambia con jQuery val () o JavaScript

Si cambio el valor de un campo de entrada mediante programación, elinput ychange Los eventos no se disparan. Por ejemplo, tengo este escenario:

var $input = $('#myinput');

$input.on('input', function() {
  // Do this when value changes
  alert($input.val());
});

$('#change').click(function() {
  // Change the value
  $input.val($input.val() + 'x');
});
<input id="myinput" type="text" />
<button id="change">Change value</button>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

El problema: El evento se activa cuando escribo en el campo de texto, pero no cuando presiono el botón. ¿Hay alguna manera de lograr esto con algún tipo de evento o de otro modo sin tener que hacerlo manualmente?

Lo que no quiero hacer: Podría revisar todo mi código para agregar untrigger o llamar a funciones en todas partes manualmente, pero eso no es lo que estoy buscando.

Por qué: La razón principal por la que me gustaría hacer esto automáticamente es porque tengo muchos campos de entrada y muchos lugares diferentes donde cambio estas entradas mediante programación. Me ahorraría mucho tiempo si hubiera una manera de disparar el eventoautomáticamente cuando cualquier entrada se cambia en cualquier parte de mi código.

Respuestas a la pregunta(5)

Su respuesta a la pregunta