回 帖 发 新 帖 刷新版面

主题:[讨论]asp和javascript交互发问题!

我要做个注册页面的 注册名的验证,验证方法如下:

你的名字:<iuput type=text name=username value="" onblur="<%=yanzheng()%>">

就是当鼠标离开那个文本框时就连数据库,并对当前用户输入的名字进行数据库的查询验证。。


请问要怎么写啊??

回复列表 (共3个回复)

沙发

用js写个验证函数

板凳

用异步读取数据,返回结构给本页面
AJAX就能满足你的要求

3 楼

<input id="user" type="text" onblur="checkUser(this.value);" /><span id="validUser" style="color:#ff0000"></span>

<script language="javascript">
var xhr;
if(window.ActiveXObject)
   xhr=new ActiveXObject("Microsoft.XMLHTTP");    
else
   xhr=new XMLHttpRequest();

function checkUser(userName){

  var xhrmethod="POST";
  var xhrurl="validUser.asp";
  var xhrasyn=true;
  alert("checking...");
  xhr.onreadystatechange=cbValidUser;
  xhr.open(xhrmethod,xhrurl,xhrasyn);
  if(xhrmethod=="POST")
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  if (xhr.overrideMimeType) 
    xhr.overrideMimeType('text/xml'); 
  document.getElementById("validUser").innerHTML="正在向服务器发送验证信息...";
  xhr.send("?userName="+userName);
}
function cbValidUser(){
  alert("in cbValidUser");
  if(xhr.readyState==200 && xhr.status==4){
     if(xhr.responseText!=1){
        document.getElementById("validUser").innerHTML="该用户名已被注册,请重新输入";
        document.getElementById("user").setFocus();
     }else{
        document.getElementById("validUser").innerHTML="恭喜,该用户名未被被注册";
     }
  }
}
</script>

以上是客户端JS代码
服务端代码 validUser.asp 的产生的内容应为:
    (相当于一个表单用POST的方式传了一个userName)
    当userName可用时,此页面应该只显示一个数字 1 (不要任何其它东西!!包括<html>等不可见TAG)

我来回复

您尚未登录,请登录后再回复。点此登录或注册