javascript中手动onchange事件触发
触发onchange事件的问题,并不是值一旦更改就会触发onchange事件。
对于onBlur和onFocus可以直接调用object.Blur()和object.Focus(),但javascript中没有object.Change
事件。
object.fireEvent()可以触发事件,如触发onchange事件则是object.fireEvent('onchange'),以此类推。
例:
<SELECT id=select1 οnchange="alert(this.value)">
<OPTION value="0">0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
</SELECT>
<INPUT type="text" id=text1 name=text1>
<INPUT type="button" value="Button" οnclick="select1.selectedIndex=text1.value">
手动改变select的值,会触发onchange
脚本改变selectedIndex,不会触发onchange
解决办法
if (select1.fireEvent)
select1.fireEvent("onchange")
else
select1.onchange()