一尘不染

自动更改时,onChange事件不起作用

jsp

我在一个选择框(usageDisplays)上有一个onChange事件,该事件根据第一个选择框的选定值填充下一个选择框:

<html:select name="usageDisplays" property="name" indexed="true" onchange='<%="populateYearsList(" + Id + "," + name + ")"%>' />

当用户在usageDisplays中选择值时,此方法效果很好,但根据页面前面的单选按钮选择设置了useDisplays的值时,则根本不起作用

getElementByName("usageDisplay.name").value = userName;

阅读 442

收藏
2020-06-08

共1个答案

一尘不染

您好onchange仅在选择值必须更改但页面加载时不会触发,然后再更改时才会触发

以编程方式更改值不会引发更改事件,只有在用户将元素聚焦,更改值然后将焦点置于其他位置时才会发生更改事件。

选项是手动调用onchange侦听器,在元素上分配更改事件,或通过使DOM上移并使用onchange侦听器查找父对象并对其进行调用来手动使更改事件冒泡。

这是一个合适的答案:手动触发onchange事件

一些链接:

MDN dispatchEvent (standards compliant): https://developer.mozilla.org/en/DOM/element.dispatchEvent
MSDN fireEvent (IE proprietary): http://msdn.microsoft.com/en-us/library/ie/ms536423(v=vs.85).aspx
2020-06-08