js的onchange事件触发

来源:互联网 发布:大连外国语大学知乎 编辑:程序博客网 时间:2024/05/16 04:47

javascript中手动onchange事件触发
触发onchange事件的问题,并不是值一旦更改就会触发onchange事件。
对于onBlur和onFocus可以直接调用object.Blur()和object.Focus(),但javascript中没有object.Change
事件。
object.fireEvent()可以触发事件,如触发onchange事件则是object.fireEvent('onchange'),以此类推。

例:
  <SELECT   id=select1     onchange="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"   onclick="select1.selectedIndex=text1.value">  
  手动改变select的值,会触发onchange   
  脚本改变selectedIndex,不会触发onchange 
解决办法
if   (select1.fireEvent)   
      select1.fireEvent("onchange")   
  else   
      select1.onchange()

<INPUT   type="button"   value="Button"   onclick="select1.selectedIndex=text1.value;
select1.fireEvent('onchange')">
我的程序,因为程序里有多个action里并每个action有多个submit按钮事件,为了区别代码,同时页面隐藏
按钮
<select name="select" onchange="document.getElementById('seaoldsubmit').click();">
<option value="0">我的查询条件</option>
......
</select>
<input type="submit" name="seaoldsubmit" value="确定" style="display:none">
if(submitcheck('seaoldsubmit'))