以编程方式处理DOM元素值不会触发onchange事件 [英] Programmatically manipulating DOM element value doesn't fire onchange event

查看:86
本文介绍了以编程方式处理DOM元素值不会触发onchange事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个隐藏的表单字段,当一个按钮被按下时,隐藏字段的值被改变。现在,我已经添加了一个观察者到隐藏的字段,监听更改发生。由于某些原因,尽管事件侦听器从不踢,即使隐藏元素的值发生变化。我正在使用Prototype和Firefox 3.6。



代码看起来大致如下:

 code> button.observe('click',function(event){
hiddenField.setValue(someValue);
});

hiddenField.observe('change',function(event){
alert('It works!');
});有没有人知道为什么后一个观察者不执行?

$ b $(
$ b

谢谢!

解决方案

您需要 event.simulate.js



消除事件..

  button.observe('click',function(event){
hiddenField.setValue(someValue);
hiddenField.simulate('change');
});

然后观察:

  hiddenField.observe('change',function(event){
alert('It works!');
});


I've got a hidden form field, and when a button gets pressed the value of the hidden field is changed. Now, I've added an observer to the hidden field, listening for changes to occur. For some reason, though, the event listener never kicks in, even though the value of the hidden element changes. I'm using Prototype and Firefox 3.6.

The code looks roughly like this:

button.observe('click', function(event) {
  hiddenField.setValue(someValue);
});

hiddenField.observe('change', function(event) {
  alert('It works!');
});

Does anyone have a clue why the latter observer doesn't execute?

Thanks!

解决方案

You need event.simulate.js

Fire the event..

button.observe('click', function(event) {
  hiddenField.setValue(someValue);
  hiddenField.simulate('change');
});

And then observe it:

hiddenField.observe('change', function(event) {
  alert('It works!');
});

这篇关于以编程方式处理DOM元素值不会触发onchange事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆