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

时间:2013-05-11 20:44:20

标签: jquery

我可以设置这个监听器:

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

如果我打开 DevTools 并执行:

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

以上事件均未被调用。我应该听哪个事件发生这种情况?

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:-1)

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

手动执行您想要的活动