我在一个选择框(usageDisplays)上有一个 onChange 事件,它根据第一个选择框的选定值填充下一个选择框:
<html:select name="usageDisplays" property="name" indexed="true" onchange='<%="populateYearsList(" + Id + "," + name + ")"%>' />
当用户选择 useDisplays 中的值时,此方法可以正常工作,但当基于页面前面的单选按钮选择设置 useDisplays 的值时,则根本不起作用
getElementByName("usageDisplay.name").value = userName;
最佳答案
嗨 onchange 仅当选择值必须更改时才会触发,但在页面加载时它不会先选择任何内容然后再更改
以编程方式更改值不会触发更改事件,只有当用户聚焦元素、更改值然后将焦点放在其他位置时才会发生更改事件。
选项是手动调用 onchange 监听器,在元素上分派(dispatch)更改事件,或者通过在 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
关于javascript - 自动更改时 onChange 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16667105/