Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 以编程方式操作DOM元素值不会';一次火灾事件_Events_Prototypejs_Onchange - Fatal编程技术网

Events 以编程方式操作DOM元素值不会';一次火灾事件

Events 以编程方式操作DOM元素值不会';一次火灾事件,events,prototypejs,onchange,Events,Prototypejs,Onchange,我有一个隐藏的表单字段,当按下按钮时,隐藏字段的值就会改变。现在,我已经在隐藏字段中添加了一个观察者,监听将要发生的更改。但是,出于某种原因,即使隐藏元素的值发生了更改,事件侦听器也不会启动。我正在使用Prototype和Firefox3.6 代码大致如下所示: button.observe('click', function(event) { hiddenField.setValue(someValue); }); hiddenField.observe('change', functi

我有一个隐藏的表单字段,当按下按钮时,隐藏字段的值就会改变。现在,我已经在隐藏字段中添加了一个观察者,监听将要发生的更改。但是,出于某种原因,即使隐藏元素的值发生了更改,事件侦听器也不会启动。我正在使用Prototype和Firefox3.6

代码大致如下所示:

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。我尝试将元素更改为普通文本类型字段,只是想看看是否是隐藏类型执行了此操作,但结果是相同的。真是愚蠢的事。不过,触发一个自定义事件就成功了。