我可以设置这个监听器:
$('input[type="text"]').on('keyup paste input change', function() {
console.log('Hello!');
});
如果我打开DevTools并执行以下操作:
$('input[type="text"]').val('a new value');
没有调用上述任何事件。对于这种情况,我应该听哪个事件?
我可以设置这个监听器:
$('input[type="text"]').on('keyup paste input change', function() {
console.log('Hello!');
});
如果我打开DevTools并执行以下操作:
$('input[type="text"]').val('a new value');
没有调用上述任何事件。对于这种情况,我应该听哪个事件?
以编程方式更改元素值不会触发事件,您必须自己执行此操作。您可以使用 trigger 在 jQuery 中触发事件处理程序:
$('input[type="text"]').val('a new value').trigger('change');
该.val()
函数被设计为在执行时不触发事件。我的意思是,即使由于 jQuery 的工作方式,它在技术上可能具有该功能。如果您使用该.val()
功能,您可以手动执行您想要使用的事件$(element).val("something").click()/change()/input()/keyup()