Input-Ereignis funktioniert nicht, wenn der Wert mit jQuery val () oder JavaScript geändert wird

Wenn ich den Wert eines Eingabefelds programmgesteuert ändere, wird dasinput undchange -Ereignisse werden nicht ausgelöst. Zum Beispiel habe ich dieses Szenario:

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>

Das Problem Das Ereignis wird ausgelöst, wenn ich in das Textfeld tippe, aber nicht, wenn ich die Taste drücke. Gibt es eine Möglichkeit, dies mit einem Ereignis oder auf andere Weise zu erreichen, ohne dies manuell tun zu müssen?

Was ich nicht machen will: Ich könnte meinen gesamten Code durchgehen, um ein @ hinzuzufügetrigger oder Funktionsaufruf überall manuell, aber das ist nicht das, wonach ich suche.

Warum Der Hauptgrund, warum ich dies automatisch tun möchte, ist, dass ich viele Eingabefelder und viele verschiedene Stellen habe, an denen ich diese Eingaben programmgesteuert ändere. Es würde mir viel Zeit sparen, wenn es eine Möglichkeit gäbe, das Ereignis auszulösenautomatisc wenn eine Eingabe irgendwo in meinem Code geändert wird.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage