查了几天的资料,终于找到了不用AJAX就可实现无刷新验证的方法,即使用浏览器自己带的异步传输功能来实现. 以下是使用的代码:
请求页zcb.aspx HTML代码:
<script language="javascript" id="clientEventHandlersJS">
<!--
// 异步验证程序
var xmlHttp = false;
function creatXMLHTTPRequst(){
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); //创建一个XMLHTTP浏览器对象, 可用于模拟http的GET和POST请求
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
}
function callServer() {
var u_name = document.getElementById("txt_pid").value;
if ((u_name == null) || (u_name == "")) return;
var url = "CheckUser.aspx?sfzh=" + u_name;
creatXMLHTTPRequst();
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}
function updatePage() {
if (xmlHttp.readyState < 4) {
pid_flag.innerHTML="<IMG src=/"images/load.gif/" >";
}
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
if(response=="已注册已注册"){
pid_flag.innerHTML="<IMG src=/"images/check_error.gif/" >"; document.getElementById("Button1").disabled=true;
}
else{
pid_flag.innerHTML="<IMG src=/"images/check_right.gif/" >"; txt_pid_onblur();
document.getElementById("Button1").disabled=false;
}
}
}--> </script>
服务端CheckUser.aspx代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CheckUser.aspx.cs" Inherits="CheckUser" %>
<!--这个页里只能有上面的一行.不然不会返回数据-->
CheckUeser.aspx.cs
using *.*;
public class CheckUser : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string sfzh = Request.QueryString["sfzh"].ToString();
string strsel="select count(*) from bmk where SFZH='"+sfzh+"'";
int flag=database.Count(strsel);;
if (flag>0)
{
Response.Write("已注册"); //表示已被注册
}
else
{
Response.Write("未注册"); //表示未被注册
}
}
}