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

innerhtml效果瞬间消失!
本人是noob,刚和同学参加一个学校的比赛;
js主要是声明一个函数,这个函数内部与php页面进行交互,如果一切正常就将id为result的span标签内容改了;这是js代码:

                function Send_message(rUsername,rPassword){
var xmlhttp;
if(rUsername == 0 || rPassword == 0){
alert("error");
return;
}
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
alert("status:"+xmlhttp.status+"readystate:"+xmlhttp.readyState);
if (xmlhttp.readyState==4 && xmlhttp.status==200){
     document.getElementById("result").innerHTML = xmlhttp.responseText;
     }
   }
   xmlhttp.open("get","php/index.php",false);
xmlhttp.send();
}

这是其中相关的HTML代码和调用这个函数的代码:
<span id="result">haha</span>
                      <form action=""> 
<div class = "loginPanelControlsGroup">
<input class = "loginControls" type="text" id="loginUsername" name = "loginUsername">
</div>
<div class = "loginPanelControlsGroup">
<input class = "loginControls" type="text" name="loginPassword" id="loginPassword">
</div>
<div class = "loginControlsGroup">
<button class="panelBTN" id="loginPanelBTN" onclick = "Send_message(loginUsername.value,loginPassword.value)" ><span class = "panelBTNText">登陆</span></button>
</div>

为了测试,所以就简化了php代码:
<?php
// $username = $_POST["username"];
// $password = $_POST["password"];
$result = "dsafsdfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
echo $result;
?>

现在的问题是每次#result里面的内容都会变,但只是一瞬间,肉眼可见但瞬间就消失变回原来的内容,大家看我的代码里面有什么错误吗?请多多指教!我的e-mail:liyinuo1994@gmail.com
------解决方案--------------------
是因为你使用了 form标签的原因 把 <form action=""> 去掉就可以了