使用val()设置输入值时会触发什么jquery事件?

我可以设置这个监听器:

$('input[type="text"]').on('keyup paste input change', function() { console.log('Hello!'); }); 

如果我打开DevTools并执行:

 $('input[type="text"]').val('a new value'); 

上面没有任何事件被调用。 我应该听哪个事件?

以编程方式更改元素值不会触发事件,您必须自己执行此操作。 您可以使用触发器在jQuery中触发事件处理程序:

 $('input[type="text"]').val('a new value').trigger('change'); 

.val()函数设计为在执行时不触发事件。 我的意思是,即使它可以在技术上具有由于jQuery如何工作的function。 如果你使用.val()函数,你可以使用$(element).val("something").click()/change()/input()/keyup()手动执行你想要的事件$(element).val("something").click()/change()/input()/keyup()