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

求助使用ajax无刷提交表单时,按钮onsubmit事件问题
Hi,ALL:

问题很简单,想用一个按钮实现开关的功能。在IE里调试,点第一下之后,按钮的onsubmit已经被改成了我想要的状态,但是再点,似乎onsubmit就失效了,而且页面被刷了一下。请大家帮忙纠正下错误吧,谢谢!

JScript code
<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>


------解决方案--------------------
HTML code

<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>