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:&nbsp;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:&nbsp;Podría revisar todo mi código para agregar untrigger&nbsp;o llamar a funciones en todas partes manualmente, pero eso no es lo que estoy buscando.

Por qué:&nbsp;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&nbsp;cuando cualquier entrada se cambia en cualquier parte de mi código.