我在一个选择框(usageDisplays)上有一个onChange事件,该事件根据第一个选择框的选定值填充下一个选择框:
<html:select name="usageDisplays" property="name" indexed="true" onchange='<%="populateYearsList(" + Id + "," + name + ")"%>' />
当用户在usageDisplays中选择值时,此方法效果很好,但根据页面前面的单选按钮选择设置了useDisplays的值时,则根本不起作用
getElementByName("usageDisplay.name").value = userName;
您好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