日期:2014-05-16  浏览次数:20322 次

请问怎么用JS执行绑定到其他元素上的事件程序?
假设有三个一个这样的表单
<form onsubmit="return checkForm()">
<input type="button" id="b1" onclick="alert(1)"/>
<input type="submit" id="b2" />
<input type="reset" id="b3" />
</form>

<script type="....">
b1.onclick=function(){alert(2)}
b1.attachEvent("onclick",function(){alert(3)})
b1.attachEvent("onclick",function(){alert(4)})
</script>

我现在就是想怎么样通过程序来模拟执行b1~b3的click?
不管是写在标签上的,还是对象复制,还是绑定的,都要执行到,
而且按钮的默认行为也要被支持
例如点击b2会触发表单的onsubmit事件
有个问题, 若是直接给表单执行form.submit()不会触发onsubmit事件,何解?
在IE中,可以b1.click()来执行,可是其他浏览器就不行了...


------解决方案--------------------
b1.click() 执行不了?
是不是对象取的不对?

form.submit()是可以执行到的
------解决方案--------------------
没别的招,你只能写一个模拟,onclick的函数。
另外,submit是个动作,而onsubmit是一个事件触发点。onsubmit在submit之前,所以你submit时自然就不会再onsubmit了,就好像,吃饭前要先洗手一样。你洗干净了手,就可以吃饭,没洗干净就不能吃。而当你把饭吃到嘴里的时候,你肯定就不会再去洗手了。呵呵,,,
偶是菜鸟,随便这么一说