CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  Ajax

ajax页面校验问题

楼主tongshushan(雨点轻轻洒过)2006-03-04 12:33:54 在 Web 开发 / Ajax 提问

 
  有这个一个ajax页面校验程序:  
  当有重复用户名时给出提示:"用户名已经被注册,请更换一个用户名!";  
  没有重复用户名时给出提示"用户名尚未被使用,您可以继续.";  
  代码如下所示:  
  ------------------------------------------------------------------------------  
  sample1_1.jsp的内容如下:  
   
   
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   errorPage=""   %>  
  <html>  
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <title>无标题文档</title>  
  <script   language="javascript">  
  var   http_request   =   false;  
  function   send_request(url)   {//初始化、指定处理函数、发送请求的函数  
  http_request   =   false;  
  //开始初始化XMLHttpRequest对象  
  if(window.XMLHttpRequest)   {   //Mozilla   浏览器  
  http_request   =   new   XMLHttpRequest();  
  if   (http_request.overrideMimeType)   {//设置MiME类别  
  http_request.overrideMimeType('text/xml');  
  }  
  }  
  else   if   (window.ActiveXObject)   {   //   IE浏览器  
  try   {  
  http_request   =   new   ActiveXObject("Msxml2.XMLHTTP");  
  }   catch   (e)   {  
  try   {  
  http_request   =   new   ActiveXObject("Microsoft.XMLHTTP");  
  }   catch   (e)   {}  
  }  
  }  
  if   (!http_request)   {   //   异常,创建对象实例失败  
  window.alert("不能创建XMLHttpRequest对象实例.");  
  return   false;  
  }  
  http_request.onreadystatechange   =   processRequest;  
  //   确定发送请求的方式和URL以及是否同步执行下段代码  
  http_request.open("GET",   url,   true);  
  http_request.send(null);  
  }  
  //   处理返回信息的函数  
          function   processRequest()   {  
                  if   (http_request.readyState   ==   4)   {   //   判断对象状态  
                          if   (http_request.status   ==   200)   {   //   信息已经成功返回,开始处理信息  
                                  alert(http_request.responseText);  
                          }   else   {   //页面不正常  
                                  alert("您所请求的页面有异常。");  
                          }  
                  }  
          }  
  function   userCheck()   {  
  var   f   =   document.form1;  
  var   username   =   f.username.value;  
  if(username=="")   {  
  window.alert("用户名不能为空。");  
  f.username.focus();  
  return   false;  
  }  
  else   {  
  send_request('sample1_2.jsp?username='+username);  
  }  
  }  
  </script>  
  <link   href="css/style.css"   rel="stylesheet"   type="text/css">  
  </head>  
   
  <body>  
  <form   name="form1"   action="success.jsp"   method="post">  
  用户名:<input   type="text"   name="username"   value="">&nbsp;  
   
  <input   type="submit"   name="submit"   value="提交"   onClick="userCheck()">  
  </form>  
  <!--span   style="cursor:   pointer;   text-decoration:   underline"   onclick="send_request('2.jsp?username=educhina')">Send   a   request</span-->  
  </body>  
  </html>  
   
   
  --------------------------------------------------------------------------------------  
  sample1_2.jsp的内容如下:  
   
   
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   errorPage=""   %>  
  <%  
  String   username   =   request.getParameter("username");  
  if("educhina".equals(username))   out.print("用户名已经被注册,请更换一个用户名。");  
  else   out.print("用户名尚未被使用,您可以继续。");  
  %>  
   
  --------------------------------------------------------------------------------------  
  success.jsp的内容如下:  
   
   
  <%@   page   contentType="text/html;   charset=gb2312"   language="java"   errorPage=""   %>  
  <html>  
      <head>          
      </head>  
      <body>  
          <table>  
                注册成功!  
          </table>  
      </body>  
  <html>  
   
   
   
  ================================================================================  
   
  问题:  
   
  现在我想把它改成当有重复用户名时给出提示:"用户名已经被注册,请更换一个用户名!",且页面不能提交;   若没有重复用户名时不给出任何提示,即不弹出alert对话框,页面跳转到success.jsp页面,请问大家应该怎样做?  
  问题点数:10、回复次数:6Top

1 楼tongshushan(雨点轻轻洒过)回复于 2006-03-06 08:58:08 得分 0

请大家指教!Top

2 楼chinahuman(铁匠)回复于 2006-03-06 09:06:49 得分 6

不会JSP,但是可以帮你说一下思路:  
  你既然只有两种状态,那么JSP里面可以只返回两种状态,1或0比如说返回0是失败的,那么JS就可以这么改了:  
          function   processRequest()   {  
                  if   (http_request.readyState   ==   4)   {   //   判断对象状态  
                          if   (http_request.status   ==   200)   {   //   信息已经成功返回,开始处理信息  
                                  if(http_request.responseText=="0")  
  {  
      alert("用户名已经被注册,请更换一个用户名!");  
  }  
  else  
  {  
  location.href   =   "success.jsp";  
  }  
                          }   else   {   //页面不正常  
                                  alert("您所请求的页面有异常。");  
                          }  
                  }  
          }  
   
  function   userCheck()   {  
  var   f   =   document.form1;  
  var   username   =   f.username.value;  
  if(username=="")   {  
  window.alert("用户名不能为空。");  
  f.username.focus();  
  return   false;  
  }  
  else   {  
  send_request('sample1_2.jsp?username='+username);  
  return   false;  
  }  
  }Top

3 楼keanfly(fly)回复于 2006-03-06 09:15:46 得分 4

楼上的朋友,你这一步根本没办法实现:  
    if(http_request.responseText=="0"),因为http_request.responseText传过来的是包括<html><head></head></html>在内的文本,怎么可能只取到一个0或是1呢?  
  Top

4 楼wendingming(网络男人)回复于 2006-03-06 09:20:34 得分 0

QQ群:19274762  
  共享中有一文件reg.rar  
  就是注册页面检测。Top

5 楼chinahuman(铁匠)回复于 2006-03-06 09:29:22 得分 0

keanfly(fly):你不觉得我是在说一个方法吗?Top

6 楼tongshushan(雨点轻轻洒过)回复于 2006-03-06 09:40:34 得分 0

chinahuman(铁匠)           if(http_request.responseText=="0")  
  {  
      alert("用户名已经被注册,请更换一个用户名!");  
  }  
  是不行的,我已测试过了,  
       
   
  我是这样想的在userCheck()中定义一个变量  
  var   submit=true;  
  if(http_request.responseText有提示信息时)  
  {  
      submit=   false  
      alert("用户名已经被注册,请更换一个用户名!");  
  }  
  当submit=   false时表示不提交,为true时表示提交,但在执行完  
  if(http_request.responseText有提示信息时)  
  {  
      submit=   false  
      alert("用户名已经被注册,请更换一个用户名!");  
  }  
  时submit还是为true,请问大家这是什么原因?  
  Top

相关问题

  • ajax页面校验问题!
  • ajax页面校验问题2!
  • 关于登陆页面的校验码生成
  • WEB页面的数据校验问题,如何控制输入特定字符,如整数~~~急
  • 菜鸟发问:我想把Form内容校验后再提交,在页面怎么写?看不到cs文件。
  • 高手请进!如何在页面提交前用javascript校验文本框中数据之和等于100?
  • 高手请进!如何在页面提交前用javascript校验文本框中数据之和等于100?
  • 一个注册页面 我在输入错误格式的email时 会有js校验 客户端如何才能强制禁止js校验或绕过eamil格式校验
  • crc校验
  • 数据校验

关键词

得分解答快速导航

  • 帖主:tongshushan
  • chinahuman
  • keanfly

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo