<!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>
2 label 放到 处理函数中:xmlhttp.onreadystatechange=function()
{
label = document.getElementById("username");
label.innerHTML = "xxxx";
}
了,不过不明白username为什么不行!!!!!!
id是唯一的,所以不要写2个一样id的标签,同时IE下,getElementById(xxx)也会把name 为xxx的也取出来,所以如果2个不同的标签,不要定义一样的id与name
密码:<input id="username" type="password" name="password1">两个元素的id相同了,document.getElementById("username")不知道获取的是哪一个,所以不知道有没有子元素,导致document.getElementById("username").firstChild取到的不是<label>标签的内容