不知哪里有问题,在输入用户名后,没反应?请教,请教。



<script type="text/javascript">
 var xmlhttp;
function getXMLHTTPObj() {
        if (window.XMLHttpRequest) {
        //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
        xmlhttp = new XMLHttpRequest();
        //针对某些特定版本的mozillar浏览器的BUG进行修正
        if (xmlhttp.overrideMimeType) {
            xmlhttp.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {
          var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for (var i = 0; i < activexName.length; i++) {
            try{
                xmlhttp = new ActiveXObject(activexName[i]);
                break;
            } catch(e){
            }
        }
    }
    //确认XMLHTtpRequest对象创建成功
    if (!xmlhttp) {
        alert("XMLHttpRequest对象创建失败!!");
        return;
    } else {
        //alert("ok");
    }
}

function callback() {
        if (xmlhttp.readyState == 4) {
                if (xmlhttp.status == 200) {
                    var usernames = xmlHttp.responseText;
var arrUserName = usernames.split(";");

var bFlag = false;

for (i=0;i<arrUserName.length;i++)
{
if (arrUserName[i]==showLogin.username.value)
{
bFlag = true;
break;
}
}


var node = document.getElementById("myDiv");

if (bFlag)
{
node.firstChild.nodeValue = "用户名已经存在";
showLogin.submitButton.disabled = true;
}
else
{
node.firstChild.nodeValue = "用户名不存在,可以使用";
    showLogin.submitButton.disabled = false;
}
}
}
}
function verify()
{
//创建XMLHttpRequest对象
creatXMLHTTP();
if (xmlHttp!=null)
{
//创建响应XMLHttpRequest对象状态变化的函数
xmlHttp.onreadystatechange = callback;
//创建HTTP请求
xmlHttp.open("get","conn.asp?",true);
//发送HTTP请求
xmlHttp.send(null);
}
else
{
alert("您的浏览器不支持XMLHTTP,请更换浏览器后再进行注册。");
}
}
</script>

html:
<input type="text" name="username" id="username" style="width: 200px" maxLength="20" value=""><span id="myDiv">&nbsp;</span>
....
<input name="submitButton" type="submit"value="Searching.." align="middle"width="100" onBlur="verify()" disabled="disabled" >
....


------Solutions------

function callback() {
    if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var usernames = xmlHttp.responseText;
            alert(xmlHttp.responseText); //看看有没有返回值,对不对
            var arrUserName = usernames.split(";");

            var bFlag = false;

            for (i = 0; i < arrUserName.length; i++) {
                if (arrUserName[i] == showLogin.username.value) {
                    bFlag = true;
                    break;
                }
            }
        } 
    } 
}

------Solutions------
LZ 这个可大意多了,检查验证了好久最后发现,如一些代码 写错别字,JS大小写敏感不注意,引用错函数 .....这些基本的是写代码 最最注意的 ,要出出错找烦了还不知道怎么回事。。。。修改如下:(后面HTML部分修改了点,见verify()应用)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>TEST</title>
</head>
<style type="text/css">
body,td,div{font-size:14px; font-weight:bold;font-family:arial;color:#333333;}
</style>
<script language="javascript" type="text/javascript">
var  xmlhttp ;
function  getXMLHTTPObj () {
  if(window.ActiveXObject){
  var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
  for (var i = 0; i < activexName.length; i++) {
  try{
xmlhttp = new ActiveXObject(activexName[i]);
  }catch(e){ 
  continue;
  }
   if(xmlhttp) break;
  }
  }else{  
  //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
  xmlhttp = new XMLHttpRequest();
  //针对某些特定版本的mozillar浏览器的BUG进行修正
  if(xmlhttp.overrideMimeType) {
  xmlhttp.overrideMimeType("text/xml");
  }
  }

  //确认XMLHTtpRequest对象创建成功
  if (!xmlhttp) {
  alert("XMLHttpRequest对象创建失败!!");
  return;
  }else {
  //alert("ok");
  }
}

function callback(){
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var usernames = xmlhttp.responseText;
var arrUserName = usernames.split(";");
var bFlag = false;
for (i=0;i<arrUserName.length;i++){
if (arrUserName[i]==showLogin.username.value){
bFlag = true;
break;
}
}

var node = document.getElementById("myDiv");
if (bFlag){
node.firstChild.nodeValue = "用户名已经存在";
showLogin.submitButton.disabled = true;
}else{
node.firstChild.nodeValue = "用户名不存在,可以使用";
showLogin.submitButton.disabled = false;
}

}
}
}


function verify(){
//创建XMLHttpRequest对象
getXMLHTTPObj();
if (xmlhttp!=null){
//创建响应XMLHttpRequest对象状态变化的函数
xmlhttp.onreadystatechange = callback; 
//创建HTTP请求
xmlhttp.open("get","conn.asp?",true); 
//发送HTTP请求
xmlhttp.send(null);
}else{
alert("您的浏览器不支持XMLHTTP,请更换浏览器后再进行注册。");
}
}
</script>
<body>
<input type="text" name="username" id="username" style="width: 200px" maxLength="20"  onBlur="verify()"  value=""><span id="myDiv">&nbsp;</span>
<input name="submitButton" type="submit"value="Searching.." align="middle"width="100" disabled="disabled" >

</body>
</html> 
------Solutions------
<input name="submitButton" type="submit"value="Searching.." align="middle"width="100" onBlur="verify()"  disabled="disabled"  >
你都把按钮disabled了,还怎么可能反应?? 
------Solutions------
2楼后面说的对,把onBlur拿到TEXT框里。至于程序,没看,只看到原来放事件的按钮被disabled是不能触发事件的。 
------Solutions------
上面的指正都做了休改还是不行,我又做了些修改如下,XMLHTTP能建立了,但网页显示有错误,不知哪里有错,帮忙再看看。

<script type="text/javascript">
 var xmlhttp;
function getXMLHTTPObj() {
    
   
    if (window.XMLHttpRequest) {
        //针对FireFox,Mozillar,Opera,Safari,IE7,IE8
        xmlhttp = new XMLHttpRequest();
        //针对某些特定版本的mozillar浏览器的BUG进行修正
        if (xmlhttp.overrideMimeType) {
            xmlhttp.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {
         
        var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for (var i = 0; i < activexName.length; i++) {
            try{
               
                xmlhttp = new ActiveXObject(activexName[i]);
                break;
            } catch(e){
            }
        }
    }
    
    if (!xmlhttp) {
        alert("XMLHttpRequest对象创建失败!!");
        return;
    } else 

    xmlhttp.onreadystatechange = callback;

  
    xmlhttp.open("GET","conn.asp?name="+ username,true);

    
        xmlhttp.send(null);
}

function callback() {
        if (xmlhttp.readyState == 4) {
        //判断http的交互是否成功
        if (xmlhttp.status == 200) {
            
var usernames = xmlHttp.responseText;
var arrUserName = usernames.split(";");
//定义一个变量,用于判断用户名是否已经存在
var bFlag = false;

for (i=0;i<arrUserName.length;i++)
{
if (arrUserName[i]==showLogin.username.value)
{
bFlag = true;
break;
}
}

//查找节点
var node = document.getElementById("myDiv");
//更新数据
if (bFlag)
{
node.firstChild.nodeValue = "用户名已经存在";
showLogin.submitButton.disabled = true;
}
else
{
node.firstChild.nodeValue = "用户名不存在,可以使用";
    showLogin.submitButton.disabled = false;
}
}
}
}
function verify()
{
creatXMLHTTP();
if (xmlHttp!=null)
{
//创建响应XMLHttpRequest对象状态变化的函数
xmlHttp.onreadystatechange = callback;
//创建HTTP请求
xmlHttp.open("get","username.txt",true);
//发送HTTP请求
xmlHttp.send(null);
}
else
{
alert("您的浏览器不支持XMLHTTP,请更换浏览器后再进行注册。");
}
}
</script>

HTML:
<body>
<input type="text" name="username" id="username" style="width: 200px" maxLength="20" onBlur="verify()" value=""><span id="myDiv">&nbsp;</span>
<input name="submitButton" type="submit"value="Searching.." align="middle"width="100" disabled="disabled" >

</body>

------Solutions------
请高手看看再次修改的AJAX段代码,已经知道有返回状态1,2,3,4 了,可能后面的CALLBACK函数里面有问题?我推测。

<script type="text/javascript">
 var xmlhttp;
function verify() {
        var username = document.getElementById("username").value;

        if (window.XMLHttpRequest) {
               xmlhttp = new XMLHttpRequest();
                if (xmlhttp.overrideMimeType) {
            xmlhttp.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {
                 var activexName = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for (var i = 0; i < activexName.length; i++) {
            try{
                 xmlhttp = new ActiveXObject(activexName[i]);
                break;
            } catch(e){
            }
        }
    }
       if (!xmlhttp) {
        alert("XMLHttpRequest对象创建失败!!");
        return;
    } 

    
    xmlhttp.onreadystatechange = callback;

       xmlhttp.open("GET","conn.asp?username="+ username,true);

    
        xmlhttp.send(null);
}

function callback() {
        if (xmlhttp.readyState == 4) {
        if (xmlhttp.status == 200) {
            var userNames = xmlHttp.responseText;
var arrUserName = userNames.split(";");
var bFlag = false;

for (i=0;i<arrUserName.length;i++)
{
if (arrUserName[i]==showLogin.username.value)
{
bFlag = true;
break;
}
}

//查找节点
var node = document.getElementById("myDiv");
//更新数据
if (bFlag)
{
node.firstChild.nodeValue = "用户名已经存在";

}
else
{
node.firstChild.nodeValue = "用户名不存在,可以使用";

}
}
}
}

</script> 
------Solutions------
我上传了一个关于Ajax用户名验证的,可以下看看。。。 
------Solutions------
引用 7 楼 coolsunfeng 的回复:
我上传了一个关于Ajax用户名验证的,可以下看看。。。


给个地址,谢谢。 
------Solutions------
参考,以前写的,代码可能有点乱
ajax检测用户名是否存在

更多ajax示例代码下载 
------Solutions------
引用 9 楼 showbo 的回复:
参考,以前写的,代码可能有点乱
ajax检测用户名是否存在

更多ajax示例代码下载


谢谢,在列子的启发下,搞定了这问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值