验证用户名是否在数据库中已存在(求助)

夏末天成 2013-12-26 09:19:50
表单提交的页面index.asp

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>测试-验证用户名是否重复</title>
<script type="text/javascript">
function yanzheng_zhuce(){
var tmpusername=document.zhuce.username.value
if(tmpusername=="")
{
alert("不能为空")
return false
}
else
var url="check.asp?username=" + escape(tmpusername)+"&sid="+Math.random();
xmlHttp.onreadystatechange = processSet;
xmlHttp.open("GET", url, true);
xmlHttp.send();
}
function processSet(){
if (xmlHttp.readyState == 4) {
if (xmlHttp.status == 200) {
……
……
……
alert("用户名重复");
}
}
}
}
</script>
</head>

<body>
<form name="zhuce" action="" method="post" onsubmit="return yanzheng_zhuce()">
<input type="text" name="username" /><input type="submit" value="提交" />
</form>
</body>

</html>



中间的省略号……部分我就不会写了,另外这个check.asp页面是不是这样写?
<!--#include file="conn.asp"-->
<%
dim tmpname
username=request("username")
set rs=server.createobject("adodb.recordset")
sql="select * from usermsg where username='"&username&"'"
rs.open sql,conn,1,1
if not rs.eof then
tmpname="1"
else
tmpname="0"
end if
%>

我是不是要把tmpname返回到index.asp页面中的省略号部分进行判断,如果是1就alert("用户名重复"),可是这段省略号部分和check.asp的代码我不会写。呵呵。才开始学,请大伙帮帮忙,谢谢了!
...全文
731 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
夏末天成 2013-12-30
  • 打赏
  • 举报
回复
引用 8 楼 showbo 的回复:
document.getElementById("span1").innerHTML!="正确" 是!=。。不是==
啊!!!没注意,没注意。。。哈哈哈。谢谢版主!
  • 打赏
  • 举报
回复
document.getElementById("span1").innerHTML!="正确" 是!=。。不是==
  • 打赏
  • 举报
回复
<script type="text/javascript"> var xmlHttp function createXMLHttp(){ if(window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } } function yanzheng_username(){ createXMLHttp(); var tmpusername=document.zhuce.username.value if(tmpusername=="") { document.getElementById("span1").innerHTML="不能为空" } else{ var url="server.asp?username=" + tmpusername; xmlHttp.onreadystatechange = processSet; xmlHttp.open("GET", url, true); xmlHttp.send(); } function processSet(){ if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { if (xmlHttp.responseText == '1') { document.getElementById("span1").innerHTML="重复数据" } if (xmlHttp.responseText == '0') { document.getElementById("span1").innerHTML="正确" } } } } } function check(f){//return false阻止表单提交 if(f.username.value==''){alert('用户名不能为空!');f.username.focus();return false;} //有其他验证的继续 if(document.getElementById("span1").innerHTML!="正确"){alert('用户名错误或者正在验证中。。');return false;} } </script> <form name="zhuce" action="yanzheng.asp" method="post" onsubmit="return check(this)" /> <p><input type="text" name="username" id="username" onBlur="yanzheng_username()" /><span id="span1"></span></p> <p><input type="submit" value="提交" /></p> </form> 楼主去学下基础的dhtml了,这些这么基础的
夏末天成 2013-12-29
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
太感谢版主了,实现了我要的功能!再次感谢,呵呵,另外这一句: if(document.getElementById("span1").innerHTML!="正确"){alert('用户名错误或者正在验证中。。');return false; 我不太明白,为什么都判断为“正确”了,反而实现了阻止表单提交呢???我非常想不通。。。
亮老亮 2013-12-29
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
按照你的提示,我测试成功了,真的十分感谢!而且我把弹出窗口效果改成了触发innerHTML效果。你帮我看看语法都正确吗?具体代码是:

<script type="text/javascript">
var xmlHttp
function createXMLHttp(){
    if(window.ActiveXObject){
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if(window.XMLHttpRequest){
        xmlHttp = new XMLHttpRequest();
    }
} 
 function yanzheng_username(){
 createXMLHttp();
 var tmpusername=document.zhuce.username.value
 if(tmpusername=="")
  {
   document.getElementById("span1").innerHTML="不能为空"
  }
 else{
  var url="server.asp?username=" + tmpusername;
  xmlHttp.onreadystatechange = processSet;
  xmlHttp.open("GET", url, true);
  xmlHttp.send();
}
function processSet(){
 if (xmlHttp.readyState == 4) {
  if (xmlHttp.status == 200) {
   if (xmlHttp.responseText == '1') {
  document.getElementById("span1").innerHTML="重复数据"
  }
  if (xmlHttp.responseText == '0') {
  document.getElementById("span1").innerHTML="正确"
      }
     }
    }
   }
  }
</script>
<form name="zhuce" action="yanzheng.asp" method="post" />
<p><input type="text" name="username" id="username" onBlur="yanzheng_username()" /><span id="span1"></span></p>
<p><input type="submit" value="提交" /></p>
</form>
另外一个问题比较困扰,就是现在实现了AJAX的在文本框后面时时提示输入错误和正确的信息,那怎样实现诸多文本框只要有一个没有通过,那么点击“提交”按钮就没反应呢?都通过就可以正常提交呢?
  • 打赏
  • 举报
回复
<!--#include file="conn.asp"--> <% dim tmpname username=request("username") set rs=server.createobject("adodb.recordset") sql="select * from usermsg where username='"&username&"'" rs.open sql,conn,1,1 if not rs.eof then tmpname="1" else tmpname="0" end if response.write tmpname %> asp要输出内容,加上红色那句 还有验证用户名是否存在不要再提交中验证,会提交表单,ajax会不执行,除非改成同步的,而且xmlHttp都没有创建。。

    function yanzheng_zhuce() {
        var tmpusername = document.zhuce.username.value
        if (tmpusername == "") {
            alert("不能为空")
            return false
        }
        else {
            var url = "check.asp?username=" + escape(tmpusername) + "&sid=" + Math.random();
            var xmlHttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("microsoft.xmlhttp");
            xmlHttp.open("GET", url, false); ///同步
            xmlHttp.send(null);
            if (xmlHttp.responseText == '1') { alert('用户名已经存在!'); return false}
        }
    }
_拙计 2013-12-27
  • 打赏
  • 举报
回复
楼上这家伙已经说的很详细了,不过你要是jquery ajax代码会更简单些
孟子E章 2013-12-26
  • 打赏
  • 举报
回复
else后面加{}把代码括起来
zhjdg 2013-12-26
  • 打赏
  • 举报
回复
xmlHttp.responseText就是你页面输出的东西。

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧