为什么jQuery.val(value)不会从DOM元素中调度任何事件?

SDR*_*yes 17 javascript jquery dom javascript-events

当我们jQuery.Val( value )在DOM元素上使用该方法来改变它的值时.

元素是否应该发送一个事件来通知它的值已经改变了? - 虽然事件'变更'将被派遣.

如果不应该为什么?

现场演示

Nic*_*ver 35

它没有被发送,这只是在程序化改变时不会发生.然而,您可以在需要时自由发射事件,如下所示:

$('#Anne').val('Jenny').change();
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试一下.

理由?如果用户改变了某些东西,你可能需要做出反应,但如果改变了一些东西,那么你就知道发生了什么,并且触发事件处理程序可能完全是浪费...所以如果需要,你可以调用该事件处理程序.

  • @SDReyes:另外:如果事件处理程序会自动触发以进行编程更改,这可能会触发不可避免的无限循环,具体取决于您的操作.他们不这样做很好. (4认同)