Events 以编程方式操作DOM元素值不会';一次火灾事件
我有一个隐藏的表单字段,当按下按钮时,隐藏字段的值就会改变。现在,我已经在隐藏字段中添加了一个观察者,监听将要发生的更改。但是,出于某种原因,即使隐藏元素的值发生了更改,事件侦听器也不会启动。我正在使用Prototype和Firefox3.6 代码大致如下所示:Events 以编程方式操作DOM元素值不会';一次火灾事件,events,prototypejs,onchange,Events,Prototypejs,Onchange,我有一个隐藏的表单字段,当按下按钮时,隐藏字段的值就会改变。现在,我已经在隐藏字段中添加了一个观察者,监听将要发生的更改。但是,出于某种原因,即使隐藏元素的值发生了更改,事件侦听器也不会启动。我正在使用Prototype和Firefox3.6 代码大致如下所示: button.observe('click', function(event) { hiddenField.setValue(someValue); }); hiddenField.observe('change', functi
button.observe('click', function(event) {
hiddenField.setValue(someValue);
});
hiddenField.observe('change', function(event) {
alert('It works!');
});
有人知道后一个观察者为什么不执行吗
谢谢 我认为隐藏的
输入
元素不会响应该事件
我不知道原型,但我认为触发的事件完全取决于浏览器
下面是一个关于jQuery的示例。请注意,您自己更改文本会触发事件,但是通过脚本更改值的下一部分代码不会触发事件。您需要
解雇事件
button.observe('click', function(event) {
hiddenField.setValue(someValue);
hiddenField.simulate('change');
});
然后观察它:
hiddenField.observe('change', function(event) {
alert('It works!');
});
我应该痛击自己,因为我没有想到那件事。非常感谢大卫。因为我已经使用了Prototype,所以我只使用了hiddenField.fire('custom:change'),它就像一个符咒一样工作:)是的,如果触发非本机事件对您来说没问题,您可以像您显示的那样触发名称空间的自定义事件:)谢谢alex。我尝试将元素更改为普通文本类型字段,只是想看看是否是隐藏类型执行了此操作,但结果是相同的。真是愚蠢的事。不过,触发一个自定义事件就成功了。