First statement of a few variables:
var AJAXUtil = new Object();//工具对象 var xmlHttpRequest;//XMLHttpRequest对象 var sateChangeMethod; //方法变量
Create XmlHttpRequest object:
AJAXUtil.createXMLHttpRequest = function(){
try {
xmlHttpRequest = new XMLHttpRequest();
}
catch (trymicrosoft) {
try {
xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (othermicrosoft) {
try {
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (failed) {
xmlHttpRequest = false;
}
}
}
} Implementation of Get / Post requests in the incoming Ways:
/*执行Get/Post的请求中传入的方法*/
AJAXUtil.handleStateChange = function(){
if(xmlHttpRequest.readyState == 4){
if(xmlHttpRequest.status == 200){
//这里加上(),执行sateChangeMethod方法,这种方式叫做自调用
//参考,http://xiayuanfeng.javaeye.com/blog/304565
sateChangeMethod();
}
}
}
Get the request method:
/* Get请求方式stateChange传入的业务方法,url地址,isAsynch是否异步*/
AJAXUtil.doRequstUsingGet = function(stateChange,url,isAsynch){
sateChangeMethod = stateChange;
AJAXUtil.createXMLHttpRequest();
xmlHttpRequest.onreadystatechange = AJAXUtil.handleStateChange;
xmlHttpRequest.open("GET",url,isAsynch);
xmlHttpRequest.send(null);
} Post a request by:
/* Post请求方式stateChange传入的业务方法,url地址,isAsynch是否异步,queryString参数串*/
AJAXUtil.doRequstUsingPost = function(stateChange,url,isAsynch,queryString){
sateChangeMethod = stateChange;
AJAXUtil.createXMLHttpRequest();
xmlHttpRequest.onreadystatechange = AJAXUtil.handleStateChange;
xmlHttpRequest.open("POST",url,isAsynch);
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;")
xmlHttpRequest.send(queryString);
} Test Code:
String validateAction = contextPath + "/RF/ExchangePointValidate.html";
function $(id){
return document.getElementById(id);
}
function keyupCheck(obj){
obj.value = obj.value.replace(/[^\d.]/g,'');
$("RFInput").value = obj.value*<%=rate%>;
$("validateMessage").innerHTML = "";
var url = "<%=validateAction%>?uid="+<%=id%>;
AJAXUtil.doRequstUsingGet(stateChange,url,true);
}
function stateChange(){
var xmlDoc = xmlHttpRequest.responseXML;
var info = xmlDoc.getElementsByTagName('message');
var leftMoney = info[0].firstChild.data;
if(parseFloat(leftMoney) < parseFloat($("exchange").value)){
$("validateMessage").innerHTML = "<font color='red'>兑换的金额大于账户余额!</font>";
$("exchange").value="";
$("RFInput").value="";
$("exchange").focus();
comFlag = false;
}
} <font color="#ffcc00"> <input type="text" onkeyup="keyupCheck(this);" /> 元</font>







