注册页面Ajax检查用户名重复
注册页面Ajax检查用户名重复
IE现在60行报错:'null'为空或不是对象
上代码:
<script type="text/javascript"> var xmlHttp; function createXMLHTTP() { if(window.ActiveXObject) { var browseVersion=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<browseVersion.length;i++) { xmlHttp=new ActiveXObject(browseVersion[i]); } } else if(window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest(); } if (!xmlHttp) { window.alert("不能创建XMLHttpRequest对象实例!"); return false; } } function $(id) { return document.getElementById(id); } function CheckUserName(obj,Msg) { if(obj.value=="") { alert( "请输入用户名!") } else { createXMLHTTP(); var url="chkuser.php?name=" + encodeURIComponent(obj.value); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=IsExistUserName; xmlHttp.send(null); } } function IsExistUserName() { if(xmlHttp.readyState == 4) /*这是60行*/ { var isValid = xmlHttp.responseText; var exsits = document.getElementById("exsits"); exsits.innerHTML = isValid.substring(0,4); } } </script> <table width="400" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#666666"> <tr> <td colspan="2" align="center" bgcolor="#666666" class="STYLE1">增加新用户</td> </tr> <tr> <td width="150" align="right" bgcolor="#FFFFFF">用户名:</td> <td width="250" bgcolor="#FFFFFF"><input name="wyx_name" type="text" size="17" onblur="CheckUserName(this,'msg')"/> <font color=red>*</font><label d="exsits"></label></td> </tr> <tr> <td width="150" align="right" bgcolor="#FFFFFF">密码:</td> <td width="250" bgcolor="#FFFFFF"> <input name="wyx_pass1" type="password" size="18"/> <font color=red>*</font></td> </tr> <tr> <td width="150" align="right" bgcolor="#FFFFFF">重复密码:</td> <td width="250" bgcolor="#FFFFFF"> <input name="wyx_pass2" type="password" size="18"/> <font color=red>*</font></td> </tr> <tr> <td colspan="2" align="center" bgcolor="#FFFFFF"><input type="submit" name="submit" value="提交" /></td> </tr></table><?phpinclude('chek.php');include('../config.php');$name = $_GET[name];$sql="SELECT * FROM wyx_user WHERE wyx_name='$name'";$sql=@mysql_query($sql)if($rs=mysql_fetch_array($sql)){ echo "用户名已存在";}else{ echo "可以注册";}?>
<script type="text/javascript"> function createXMLHTTP() { if(window.ActiveXObject) { var browseVersion=["Msxml2.XMLHTTP.6.0","Msxml2.XMLHTTP.3.0","Msxml2.XMLHTTP","Microsoft.XMLHTTP"]; for(var i=0;i<browseVersion.length;i++) { xmlHttp=new ActiveXObject(browseVersion[i]); } } else if(window.XMLHttpRequest) { xmlHttp=new XMLHttpRequest(); } if (!xmlHttp) { window.alert("不能创建XMLHttpRequest对象实例!"); return false; } } var xmlHttp = createXMLHTTP(); function $(id) { return document.getElementById(id); } function CheckUserName(obj,Msg) { if(obj.value=="") { alert( "请输入用户名!") } else { createXMLHTTP(); var url="chkuser.php?name=" + encodeURIComponent(obj.value); xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=IsExistUserName; xmlHttp.send(null); } } function IsExistUserName() { if(xmlHttp.readyState == 4) /*这是60行*/ { var isValid = xmlHttp.responseText; var exsits = document.getElementById("exsits"); exsits.innerHTML = isValid.substring(0,4); } } </script>
[解决办法]
好像还有点问题,createXMLHTTP()方法最后需要return xmlhttp;一下。
[解决办法]
用ff的firebug调试下看看。。。有可能是你哪里写错了。
[解决办法]
我这里报错是这句:
xmlHttp=new ActiveXObject(browseVersion[i]);
错误: Automation 服务器不能创建对象
用 try 吧:
function createXMLHTTP(){ try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(oc) { xmlHttp = null; } } if(!xmlHttp && typeof XMLHttpRequest != "undefined") { xmlHttp = new XMLHttpRequest(); } if (!xmlHttp) { window.alert("不能创建XMLHttpRequest对象实例!"); return false; }}
[解决办法]
学习
jf