var xmlhttp;
//ajax 异步调用
function loadXMLDocAsyn(url, cfunc) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = cfunc;
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
//ajax 同步调用
function loadXMLDocSyn(url) {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", url, false);
xmlhttp.send();
return xmlhttp.status;
}
//检查用户名是否合法,包括客户端检查和服务端ajax调用
function checkName(){
var username = document.getElementById("username").value;
document.getElementById("tip").innerHTML = " ";
if(username.length==0){ //用户名格式检查
document.getElementById("tip").innerHTML = "<font color='#FF0000'>用户名不能为空</font>";
document.getElementById("username").focus();
document.getElementById("flag").value = "false";
}else{//调用ajax检查用户名是否重复
loadXMLDocAsyn("action/checkNameAction.php?username="+username, getResult);
//**************************************************************/
//以下是同步调用实现方式
// var status = loadXMLDocSyn("action/checkNameAction.php?username="+username);
// if(status==200){
// if(xmlhttp.responseText.length!=0){
// document.getElementById("tip").innerHTML = "<font color='#FF0000'>用户名已被占用</font>";
// document.getElementById("username").focus();
// document.getElementById("flag").value = "false";
// }else{
// document.getElementById("flag").value = "true";
// }
// }
//******************************************************************/
}
}
//用户名查重checkName()中ajax的回调函数
function getResult() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
if(xmlhttp.responseText.length!=0){
document.getElementById("tip").innerHTML = "<font color='#FF0000'>用户名已被占用</font>";
document.getElementById("username").focus();
document.getElementById("flag").value = "false";
}else{
document.getElementById("flag").value = "true";
}
}
}