Sé que puedo lograr esto agregando la función de alerta en el cuerpo del oyente de clic de botón, pero no quiero hacerlo de esa manera. Quiero que cada vez que este cuadro de texto reciba texto, reciba una alerta.
este es el codigo
<!DOCTYPE html> <html> <head> <script src="https://code.jquery.com/jquery-3.1.1.js"></script> <title>Page Title</title> </head> <body> <form> <input id="check" type="text" name="check" > </form> <button id="test">ClickMe</button> <script> $(document).ready(function() { $('#test').click(function () { $('#check').val('Example') ; }) $('#check').on('input propertychange paste change', function () { alert("text added"); }) }) </script> </body> </html>Establecer el valor con Javascript no desencadena un evento, por lo que debe desencadenar el evento manualmente. Además, realmente solo necesita el evento de "entrada". Los otros son irrelevantes o redundantes.
$('#check').trigger('input');O puede encadenarlo ya que está usando jQuery:
$('#check').val('N001-01-1356/2017').trigger('input');Ejemplo:
$(document).ready(function() { $('#test').click(function() { $('#check').val('N001-01-1356/2017').trigger('input'); }) $('#check').on('input', function() { alert("text added"); }) }) <script src="https://code.jquery.com/jquery-3.1.1.js"></script> <form> <input id="check" type="text" name="check"> </form> <button id="test">ClickMe</button>