摸索了3、4天,终于在.net中实现了。庆祝一下^_^
这个例子主要是客户端有一个文本框,当这个文本框失去焦点后,会检查文本框中的内容是否与一个字符串匹配,如果匹配,则在文本框下方出现绿色的“正确”两个字,如果不匹配,则在文本框下方出现红色“错误”两字。
Ajax.js文件
var xmlHttp;
/*********建立XMLHttpRequest对象***********/
function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}
/*******************回调函数***************/
function handleStateChange()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
//放置回调后产生的DOM
//var xml = xmlHttp.responseText;
//var sArr = xml.split("###")
//var mes = sArr[0];
//var val = sArr[1];
var xml = xmlHttp.responseXML;
var mes = xml.getElementsByTagName("message")[0].firstChild.data;
var val = xml.getElementsByTagName("passed")[0].firstChild.data;
setMessage(mes,val);
}
}
}
/************调用函数,文本框失去焦点时触发***********/
function isValid()
{
var sText = document.getElementById("name").value;
createXMLHttpRequest();
var url = "Ajax.aspx?validString="+sText;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = handleStateChange;
xmlHttp.send(null);
}
function setMessage(message,isValid)
{
var messageArea = document.getElementById("dataMessage");
var fontColor = "red";
if(isValid == "true")
{
fontColor = "green";
}
messageArea.innerHTML = "<font color="+fontColor+">"+message+"</font>";
}
Ajax.aspx.cs文件
在该文件中,使用PageLoad事件来处理xmlHttpRequest提交的数据
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string validText = Request.QueryString["validString"];
string result = "";
// if(validText != "gujun")
// {
// result = "错误###false";
// }
// else
// {
// result = "正确###true";
// }
if(validText != "gujun")
{
result += "<response>";
result += "<message>错误</message>";
result += "<passed>false</passed>";
result += "</response>";
}
else
{
result += "<response>";
result += "<message>正确</message>";
result += "<passed>true</passed>";
result += "</response>";
}
Response.ContentType = "text/xml";
Response.AddHeader("Cache-Control","no-cache");
如果客户端使用ResponseXML接受返回数据,一定要加上这段话
Response.Write(result);
}
WebForm.aspx
"<input type="text" οnchange="isValid()" id="name">"