今天在做AJAX验证用户名是否存在的时候,很纠结用户名存在还能提交,试了各种办法,最终解决办法如下,红色代码部分可以阻止用户提交
<script src="../js/ajax.js" language="javascript" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
function check1(){
//获取用户名文本框内容1
// var uname=document.getElementById("uname");
//获取用户名文本框内容2
var cname=document.form2.cname;
if(cname.value.length<6){
//显示错误信息
document.getElementById("uspan").innerHTML="<font color='red' size='1'>对不起,您输入的内容长度应大于6!</font>";
}else{
var cname=document.form2.cname;
//当输入的内容合法显示笑脸图片
//通过Ajax异步通信验证用户名是否存在
var ajax=initAjax();
//定义请求的URL
var url="check_name.php?cname="+cname.value+"&r="+Math.random();
//打开连接
ajax.open('get',url,true);
//发送本次ajax请求
ajax.send(null);
document.getElementById("uspan").innerHTML="<img src='../images/wait.gif' />";
//当状态值发生改变的时候执行当前函数
ajax.onreadystatechange=function(){
if(ajax.readyState==4&&ajax.status==200){
//获取服务器结果,并转化为整型数据判断
if(parseInt(ajax.responseText)){
alert(ajax.responseText);
document.getElementById("uspan").innerHTML="用户名存在";
document.all("btn").disabled=true;
}else{
document.getElementById("uspan").innerHTML="用户名可用";
document.all("btn").disabled=false
}
}
}
}
}
</script>