Evento de entrada não funciona se o valor for alterado com jQuery val () ou JavaScript
Se eu alterar o valor de um campo de entrada programaticamente, oinput
echange
eventos não estão disparando. Por exemplo, eu tenho este cenário:
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>
O problema: O evento é acionado quando digito no campo de texto, mas não quando pressiono o botão. Existe uma maneira de conseguir isso com algum tipo de evento ou de outra forma sem ter que fazer isso manualmente?
O que eu não quero fazer: Eu poderia passar por todo o meu código para adicionar umtrigger
ou chamada de função em qualquer lugar manualmente, mas não é isso que estou procurando.
Por quê: A principal razão pela qual eu gostaria de fazer isso automaticamente é que tenho muitos campos de entrada e muitos lugares diferentes onde altero essas entradas programaticamente. Isso me pouparia muito tempo se houvesse uma maneira de disparar o eventoautomaticamente quando qualquer entrada é alterada em qualquer lugar do meu código.