对jquery.change()的PRGRAMATIC调用未触发与隐藏字段上的绑定更改相关的事件

对jquery.change()的PRGRAMATIC调用未触发与隐藏字段上的绑定更改相关的事件,jquery,forms,events,triggers,Jquery,Forms,Events,Triggers,我已经寻找了几个小时可能的线索,结果一无所获,所以我求助于你的智慧来帮助我 我有一个表单,表单中有一个字段,我称之为选择工具,由两部分组成,一个字段显示友好标签,一个隐藏字段存储所选ID。它看起来像这样: <input type="hidden" name="selector" id="selector" value="" /> <input type="text" readonly="readonly" id="selector_label" value="" /> &

我已经寻找了几个小时可能的线索,结果一无所获,所以我求助于你的智慧来帮助我

我有一个表单,表单中有一个字段,我称之为选择工具,由两部分组成,一个字段显示友好标签,一个隐藏字段存储所选ID。它看起来像这样:

<input type="hidden" name="selector" id="selector" value="" />
<input type="text" readonly="readonly" id="selector_label" value="" />
<a.... link to selection tool .... />
如您所见,它直接更新表单,第二条语句更新隐藏部分的值,通过调用
.change()
来触发任何侦听器。最后,它关闭了自己

为了使这更复杂,有一个侦听器分配给字段,如下所示:

$('#selector').on('blur change', function() {
    ... script to update a related field ...
});
不要注意
模糊
这实际上是一个动态脚本,由于不同的原因使用
.each()
分配给许多字段。我把它包括在内,以防你会告诉我它会有干扰

因此选择器工具工作得很好,更新了标签和隐藏字段,但是我动态分配的侦听器没有启动,因此相关字段没有获得新更改的
#selector
字段的值

你知道为什么我的侦听器不会检测到以编程方式触发的
.change()
事件吗?谢谢你能提供的任何帮助

-----编辑-----

根据注释中的建议更新,使用
.on()
而不是
.bind()
,遗憾的是没有更改

仅供参考,我知道这适用于其他字段,因为相同形式的其他字段使用此“相对”事件进行更新,它们工作正常。重要的区别和可能的原因是它们使用可见和可编辑的文本字段,而不是隐藏字段

-----编辑2-----


出于测试目的,我将隐藏字段更改为可见字段,仍然是只读的,最初它没有效果,选择器仍然工作,但分配的事件没有。然而,一个有趣的怪癖是,如果我在该(以前隐藏的)字段中单击,然后再次在其他地方触发
blur
事件状态,则指定的事件侦听器将触发并更新相对事件。那么,为什么只有当我与字段交互时才会触发事件,而不是当我以编程方式告诉它触发
.change()
事件时才会触发事件?

正如我在评论中所建议的,也许您的解决方案是使用.on()而不是.bind()来附加事件。从jQuery网站:


.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery 1.7开始,.on()方法提供附加事件处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参见.bind()、.delegate()和.live()。要删除与.on()绑定的事件,请参阅.off()。若要附加一个只运行一次然后自行删除的事件,请参见.one()

如果您使用.on()而不是.bind()附加事件,可能会这样做?谢谢,考虑到插入式替换,您应该先尝试一下,但遗憾的是,这没有任何效果。我知道这适用于其他字段,因为同样形式的其他字段使用可见文本字段而不是隐藏字段,它们工作得很好。我将更新我的问题以指出这一点。再次感谢你的建议。
$('#selector').on('blur change', function() {
    ... script to update a related field ...
});