本文介绍如何在 JavaScript 代码中通过脚本修改输入控件值后手动触发 onchange 事件。针对 IE 浏览器,推荐使用 object.fireEvent('onchange') 方法;而在 Firefox 等不支持该方法的浏览器中,需直接调用 obj.onchange()。通过条件判断实现跨浏览器兼容,确保事件正常触发。
JS代码触发onchange事件:fireEvent与onchange()兼容写法
在 JavaScript 中,onchange 事件通常由用户在客户端改变输入控件(如 textbox)的值时触发。然而,如果通过 JavaScript 代码直接修改 textbox 的 value 属性,而非通过键盘输入改变值,则不会自动触发 onchange 事件。
若需在 JavaScript 代码模式下手动触发 textbox 控件的 onchange 事件,可查阅资料发现 JS 提供了相关方法。使用 object.fireEvent() 方法,例如执行 object.fireEvent('onchange'),即可触发控件的 onchange 事件。
同理,在 JavaScript 中使用 fireEvent 方法还可以触发其他控件的事件。
需要注意的是,上述的 fireEvent 方法在 Firefox 浏览器中并不支持。因此,若希望代码在 IE 和 Firefox 中均可运行,可尝试使用以下兼容代码。
具体实现代码如下:
if (obj.fireEvent)
{
obj.fireEvent('onchange');
}
else
{
obj.onchange();
}该逻辑通过判断 fireEvent 事件是否可用,若不可用则直接调用 onchange() 方法。