我是新手  感谢CSDN的朋友帮我解决了很多问题呵呵  现在是这样的  页面注册用户的时候  我用ajax验证用户名是否存在 成功了 该用户的用户名在数据库已存在 已经提示他“用户名已被占用”现在 我需要提交表单 当用户点击提交表单的时候如果我用JS 清空文本框 这样不好 那我要怎么做才能再一次的提醒他 “用户名已被占用” 并保留他原来的的注册的帐号并且阻止他提交表单

解决方案 »

  1.   

    onclick 上 onsubmit =(return false)
      

  2.   

    我数据库是 SQL2000的 测试表是 TB_USER  
    字段就一个 username  
    记录2条
    admin
    zhuchao测试页面2个regist.jsp
    Java code
    <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
          <script type="text/javascript">
              function to(){
                  var name=document.getElementById("username").value;
                  var url="dbop.jsp?username="+encodeURI(encodeURI(name)); //处理中文
                 var xmlHttpRequest=new ActiveXObject("microsoft.xmlhttp");
                        xmlHttpRequest.open("post",url,true);
                        xmlHttpRequest.send(null);
                        xmlHttpRequest.onreadystatechange=function(){
                            if(xmlHttpRequest.readystate==4 && xmlHttpRequest.status==200){
                                ajax.innerHTML = xmlHttpRequest.responseText;
                            }
                        }              
              }
          </script>
      </head>  
      <body><div id="ajax"></div>
        <form name="name1"> 
            请输入注册ID:<input id="username" type="text" name="username" value=""/><br>
            <input type="button" value="注册" onclick="to()">    
        </form>
      </body>
    </html>
    dbop.jspJava code<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%@page import="java.net.URLDecoder"%>
    <%@page import="java.sql.*"%>
    <%
        String name = URLDecoder.decode(request.getParameter("username"),"utf-8");//处理中文
        Connection conn=null;
        Statement statement = null;
        ResultSet rs=null;    
        try{
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test","sa", "sa");
            statement=conn.createStatement();
            rs=statement.executeQuery("select username from tb_user where username = '"+name+"'");
            if(rs.next()){
                out.print("此ID已存在!");
            }else{
                out.println("此ID可注册!");
            }
        }catch(Exception exception){
            exception.printStackTrace();
        }finally{
            rs.close();
            statement.close();
            conn.close();
            
        }
     %>第一个页面你输入好点击 注册 不刷新页面 会有提示信息。
    你不喜欢提交这个事件可以选别的,只要你喜欢。
      

  3.   

    form的onsubmit里加处理<script>
    function checkSubmit(){
      //判断用户名是否被占用,如果被占用就像以下处理
      alert("用户名被占用");
      return false;
    }
    </script>
    <form onsubmit="return checkSubmit()">
      <input type="submit" value="提交"/>
    </form>
      

  4.   

    <script>
    function checkSubmit(){
      //判断用户名是否被占用,如果被占用就像以下处理
      alert("用户名被占用");
      return false;
    }
    </script>
    <form onsubmit="return checkSubmit()">
      <input type="submit" value="提交"/>
    </form>
      

  5.   

    幸亏大家了   问题解决了 
    附上代码:
    页面:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
    + request.getServerName() + ":" + request.getServerPort()
    + path + "/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>AJAX</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head>
    <script type="text/javascript">
    var xmlHttpRequest;
    var str = null;
    function createXMLHttpRequest() {
    if (window.ActiveXObject) {
    xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) {
    xmlHttpRequest = new XMLHttpRequest();
    }
    }
    function yzName(name) {
    var userInfo = document.getElementById('userName2').value;
    if (userInfo == "") {
    var str = "<font color=red>帐号不能为空</font>";
    document.getElementById('rest').innerHTML = str;
    return false;
    }
    createXMLHttpRequest();
    xmlHttpRequest.onreadystatechange = assignCallBack;
    var url = "ajaxText.action?userName3=" + name;
    xmlHttpRequest.open("post", url, true);
    xmlHttpRequest.setRequestHeader("Content-Type",
    "application/x-www-form-urlencoded");
    xmlHttpRequest.send(null);
    }
    function assignCallBack() { if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
    str = xmlHttpRequest.responseText;
    document.getElementById('rest').innerHTML = str;
    }
    } function checkForm() {
    var regu = "^(<font color=red>X</font> <font color=red>该帐号已被注册</font>)";
      var abc = str;
    var re = new RegExp(regu);
    if (abc.search(re) != -1) {
    alert('请重新写帐号');
    document.getElementById('userName2').focus();
    } else {
    myForm.submit();
    }
    }
    </script> <body>
    <form action="index.jsp" name="myForm">
    <table>
    <tr>
    <td>
    <input type="text" name="userName2" id="userName2"
    onblur="yzName(this.value)">
    </td>
    <td>
    <div id="rest"></div>
    </td>
    </tr>
    <tr>
    <td>
    </td>
    <td>
    <input type="button" onclick=checkForm(); value="注册">
    </td>
    </tr>
    </table>
    </form> </body>
    </html>
    ACTION类: public String ajaxText() throws Exception{
    response.setContentType("text/html;charset=UTF-8");
    request.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    String name = request.getParameter("userName3");
    User a =  userService.findUserByName(name);
    System.out.println("----------------------   "+a);
    if(a != null){
    String str = "<font color=red>X</font> <font color=red>该帐号已被注册</font>";
    out.println(str);
    }else{
    String str = "<img src='images/accept.png' />";
    session.put("str", str);

    out.println(str);
    }

    out.close();
    return null;
    }