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"; } } }