AJAX异步检查,检查用户名是否存在

AJAX异步检查,检查用户名是否存在


写法一:

 var xmlHttp;
        if (window.XMLHttpRequest)
         {// code for IE7+, Firefox, Chrome, Opera, Safari
         	xmlHttp=new XMLHttpRequest();
         }
        else
         {// code for IE6, IE5
        	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
        
        console.log("xmlHttp,XHR,created"+xmlHttp.readyState);
        var url = "validateUsername.jsp?username=" + trim(field.value) + "&time=" + new Date().getTime(); 
      
        //设置请求方式为GET,设置请求的URL,设置为异步提交  
        xmlHttp.open("GET", url, true); 
        
        //将方法地址复制给onreadystatechange属性  
       
        xmlHttp.onreadystatechange = function() {state_Change(xmlHttp);};
        <span style="color:#ff0000;">//Bad Code</span> xmlHttp.onreadystatechange = state_Change(xmlHttp);
        
        //将设置信息发送到Ajax引擎  
        xmlHttp.send(null); 
        
    } else { 
    	
        document.getElementById("CheckField").innerHTML = ""; 
    } 

 

 

 

function state_Change(xmlHttp) { 
	console.log("state_Change start");
    //Ajax引擎状态为成功  
    if (xmlHttp.readyState == 4) { 
        //HTTP协议状态为成功  
        if (xmlHttp.status == 200) { 
            if (trim(xmlHttp.responseText) != "") { 
                //console.log("responseText: START___",xmlHttp.responseText," ___END");
              if(trim(xmlHttp.responseText)=="OK"){
                	document.getElementById("userCheck").className="icon ticker"; 
                	document.getElementById("CheckField").innerHTML = ""; 
              	}
                else{
                	document.getElementById("userCheck").className="";
                	document.getElementById("CheckField").innerHTML = "<font color='red' style='font-size:15px; line-height: 3; vertical-align:middle'>" + xmlHttp.responseText + "</font>"; 
                }
            }else {
            	document.getElementsByName("userCheck").className="icon into";
                document.getElementById("CheckField").innerHTML = ""; 
            } 
        }else { 
            alert("数据库可能出错,请求失败,错误码=" + xmlHttp.status); 
        } 
    } 
} 

 

写法二:

 

$(function() {
	$("#checkbtn").click(function() {

		if ($("#searchkey").val() == "") {
			console.log("searchkey is null");
			alert("没有输入值!!!!");
		} else {

			$.ajax({
				url : "CheckID?searchkey=" + $("#searchkey").val(),
				success : function(result) {
					tablename = $("#searchform").children("[name='tablename']").val();
					if(...){
						if (result == "exsit") {
							...
						} else {
							...
						}
					}else{
						
						if (result == "exsit") {
							...
							
						} else {
							...
							
						}
						
						
					}
				}
			});

		}
	});

});


写法二比较简单,写法一比较原始。

 

使用异步的Ajax的好处是页面不用刷新,还能不需要点击什么按钮,不需要提交表单, 直接 由某事件自动提交到服务器进行 检查 取值等操作。

 

posted @ 2015-06-29 21:38  一杯半盏  阅读(155)  评论(0编辑  收藏  举报