ajax异步请求的时候,form标签内用button和input不一样,用button的时候页面会整体刷新,用input就正常。当用了button时,xmlhttp.status==0,具体原因我还不知道
这是html部分:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>用户名验证</title>
<script>
window.οnlοad=function(){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
};
function checkName(){
if(xmlhttp){
var url="/AjaxStudy/Ajaxjishubiancheng/namewarning.php?username="+$("username").value;
xmlhttp.open('GET',url,true);
xmlhttp.onreadystatechange=function () {
if (xmlhttp.readyState==4 && xmlhttp.status==200){
var oNameWarning=$('namewarning');
oNameWarning.value=xmlhttp.responseText;
}
};
xmlhttp.send();
}
}
var oBtnName=document.getElementById('btnname');
oBtnName.οnclick=checkName;
function $(id) {
return document.getElementById(id);
}
}
</script>
</head>
<body>
<form action="" method="get">
用户名:<input type="text" name="username1" id="username">
<input id="btnname" value="验证用户名" type="button">
<!--<button id="btnname">验证用户名</button>-->
<input style="color:red;" type="text" id="namewarning"><br/>
密码:<input type="password" name="password"><br/>
邮件<input type="text" name="email"><br/>
<button type="submit">点击注册</button>
</form>
</body>
</html>
这是PHP部分:
$username=$_GET['username'];
if ($username=="rzf"){
echo '用户名已注册';
}else{
echo '用户名可用';
}
?>