为啥 jQuery.val(value) 不会从 DOM 元素中分派任何事件?

Posted

技术标签:

【中文标题】为啥 jQuery.val(value) 不会从 DOM 元素中分派任何事件?【英文标题】:Why jQuery.val( value ) does not dispatch any event from the DOM element?为什么 jQuery.val(value) 不会从 DOM 元素中分派任何事件? 【发布时间】:2011-04-27 01:31:40 【问题描述】:

当我们在 DOM 元素上使用 jQuery.Val( value ) 方法来更改其值时。

元素不应该发送一个事件通知它的值已经改变吗? -我虽然将发送事件“更改”。

如果不应该为什么?

Live Demo

【问题讨论】:

【参考方案1】:

它没有被分派,只是当它以编程方式改变时不会发生。但是,您可以在需要时随意触发事件,如下所示:

$('#Anne').val('Jenny').change();

You can test it here.

推理?如果 user 更改了某些内容,您可能需要做出反应,但如果 更改了某些内容,那么您就知道发生了什么,并且触发事件处理程序可能完全是浪费......所以它是由您来调用该事件处理程序如果需要它。

【讨论】:

@SDReyes:另外:如果事件处理程序会自动触发程序更改,这可能会触发不可避免的无限循环,具体取决于您的操作。他们不这样做很好。

以上是关于为啥 jQuery.val(value) 不会从 DOM 元素中分派任何事件?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery .val() 与 .attr("值")

为啥当代码有效时 JQuery .val() 方法有时会返回 undefined? [复制]

Firefox/Safari 中的 jQuery val() 问题

为啥更新包含 `document.getElementById("text").value` 的变量不会改变 DOM? [复制]

为啥即使使用 hibernate.hbm2ddl.auto" value="create",hibernate 也不会自动创建表?

如果给出电子邮件ID,则无法通过jquery val()函数从电子邮件字段获取值