Hi,ALL:问题很简单,想用一个按钮实现开关的功能。在IE里调试,点第一下之后,按钮的onsubmit已经被改成了我想要的状态,但是再点,似乎onsubmit就失效了,而且页面被刷了一下。请大家帮忙纠正下错误吧,谢谢!<html>
<head>
</head><body onload="a()">
<script language="javascript">
function a()
{
var html='<form id="f" onsubmit="c();return false;"><input id=bt type="submit" value="submit" /></form>';
document.getElementById('d').innerHTML=html;
}
function c()
{
alert("c");
var html;
document.getElementById('bt').value='开';
document.getElementById('f').onsubmit='b();return false;';
}
function b()
{
alert("b");
var html;
document.getElementById('bt').value='关';
document.getElementById('f').onsubmit='c();return false;';
}
</script>
<div id=d></div>
</body>
</html>

解决方案 »

  1.   

    按钮什么时候有"onsubmit"事件的?Onsubmit事件不是form才有的么?
      

  2.   

    动态form啊?
    建议LZ用createElement()吧。貌似,直接innerHtml,事件是不能被触发的。或者,采用JQuery来append。
      

  3.   


    <html>
    <head>
    <meta charset="gb2312" />
    </head><body onload="a()">
    <script language="javascript">
    function a()
    {
        var html='<form id="f" onsubmit="c();return false;"><input id=bt type="submit" value="submit" /></form>';
        document.getElementById('d').innerHTML=html;
    }
    function c()
    {
        alert("c");
        var html;
        document.getElementById('bt').value='开';
        document.getElementById('f').onsubmit = function(){
    b();
    return false;
    };
    }
    function b()
    {
        alert("b");
        var html;
        document.getElementById('bt').value='关';
        document.getElementById('f').onsubmit=function(){
    c();
    return false;
    };
    }
    </script>
    <div id=d></div>
    </body>
    </html>楼主 这个意思?