<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>注册页面</title>
<style type="text/css"> 
#username{
color:red;
font-size:15px;
}
 
</style>
 
<script type="text/javascript"> 
function validateUsername(var1)
{  var xmlhttp;
   var label;
  
  xmlhttp=new XMLHttpRequest();
 label=document.getElementById("username").firstChild;
 xmlhttp.onreadystatechange=function()
 {
 if(xmlhttp.readyState==4){
 
 var message=xmlhttp.responseText;
 if(message=="false"){
 
 document.getElementById("username1").value="";
 label.nodeValue="用户名已经存在!";
 
 }
 else
 {
 label.nodeValue="用户名合法!";
 
 }
 
 
 
 }
 }
 
 xmlhttp.open("get","http://172.16.25.72:8080/strutslogin/ValidateUsername.do?username="+var1,true);
 
 
 xmlhttp.send(null);
 
 
}
 
 
 
 
 
 
 
</script>
</head>
 
<body>
 
<font size="5" color="red">注册页面</font>
<form name="form1" action="register.do?method=register" method="post">
用户名:<input type="text" id="username1" name="username" onblur="javascript:validateUsername(this.value)"><label id="username">用户名必须是数字或字母</label><br>
密码:<input id="username" type="password" name="password1"><font size="2" color="red">备注:两次输入密码相同方可注册成功</font><br>
确认密码:<input type="password" name="password2"><br>
邮箱:<input type="text" name="email"><br>
<input type="submit"  value="注册"> 
 
</form>
 
</body>

解决方案 »

  1.   

    firefox里面就不提示错误,请问是什么原因???????????
      

  2.   

    1 http://172.16.25.72:8080/ 是本机吗?没跨域吗?
    2 label 放到 处理函数中:xmlhttp.onreadystatechange=function()
    {
        label = document.getElementById("username");
        label.innerHTML = "xxxx";
    }
      

  3.   

    推荐你用下 jquery,像这种都已经封装好,而且兼容性jquery也已经处理掉了
      

  4.   

    我已经明白问题出在哪地方了。其实没有问题,我把label标签的id属性值改成error,就没有问题
    了,不过不明白username为什么不行!!!!!!
      

  5.   


    id是唯一的,所以不要写2个一样id的标签,同时IE下,getElementById(xxx)也会把name 为xxx的也取出来,所以如果2个不同的标签,不要定义一样的id与name
      

  6.   

    <label id="username">用户名必须是数字或字母</label>与
    密码:<input id="username" type="password" name="password1">两个元素的id相同了,document.getElementById("username")不知道获取的是哪一个,所以不知道有没有子元素,导致document.getElementById("username").firstChild取到的不是<label>标签的内容