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

    xiaoxiao2021-03-25  100

    <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"> </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"> </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"> </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示例代码下载 谢谢,在列子的启发下,搞定了这问题。
    转载请注明原文地址: https://ju.6miu.com/read-17001.html

    最新回复(0)