//定义用户名校验的方法
function verify(){
var timestamp = (new Date()).valueOf();
    var jqueryObj = $("#id");
    var id = jqueryObj.val();
    $.get("ajax.do?id="+id+"&t="+timestamp,null,callback);
}function callback(data) {
    var resultObj = $("#result");
    resultObj.html(data);
    if(d1=='ID已经存在'){
          return false;
    } else {
          return true;
    }
}<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <script type="text/javascript" src="jslib/jquery.js"></script>
    <script type="text/javascript" src="jslib/verify1.js"></script>
    
    <title>add data</title>  </head>
  
  <body>
  <form action="/add.do" method="get">
   <table >
    <tr>
        <td style="text-align:right">id :</td>
        <td><input name="id" type="text" id="id" onblur="verify()" /> <span id="result"></span> </td>          
    </tr>
    <tr>
        <td style="text-align:right" > password :</td>
        <td><input name="pwd1" type="password" /></td>          
    </tr>
<tr> 
        <td style="text-align:right">  confirm pwd:</td>
        <td><input name="pwd2" type="password" onblur="verify1()" /> <span id="pwd"></span> </td>          
    </tr>
    
     <tr>
      <td colspan="2"> 
      <input type="submit" value="确定" onclick="return callback()"/> //点提交的时候在ID存在的情况下不提交Form表单,就这么简单。可是现在不行。。    <input type="reset" value="重置" />
   </td>
     </tr>
 
 
   </table>
  </form>  </body>
 
</html>try{
            resp.setContentType("text/html;charset=utf-8");
            PrintWriter out = resp.getWriter();
            String id = req.getParameter("id");

   if("123".equals(id)){
    System.out.println(id);
    out.print("ID已经存在");
   } else {
      out.print("1");
   }
   
        } catch(Exception e){
            e.printStackTrace();
        }
点提交的时候在ID存在的情况下不提交Form表单,就这么简单。

解决方案 »

  1.   

     <input type="button" value="确定" onclick="verify()"/>
    function callback(data) {
        var resultObj = $("#result");
        resultObj.html(data);
        if(d1=='ID已经存在'){
                    return false;
        } else {
                    form.submit()
        }
    }
      

  2.   


    <input type="button" value="确定" onclick="valid()"/>//用button不用submit;不能ajax的回调函数function callback(data) {
        var resultObj = $("#result");
        resultObj.html(data);
        if(d1=='ID已经存在'){
                    //return false;//这里return是不能返回结果的,jquery的ajax函数只能返回jquery的对象
        } else {
                    //return true;
        }
    }function valid() {
          var o = $("#result");
          if (o.text() == "1") {
              $("form")[0].submit();
          }else {
             alert(o.text());
          }
    }
      

  3.   

    楼上的不用运行都知道肯定不行。function callback(data) {
        var resultObj = $("#result");
        resultObj.html(data);
        if(data=='ID已经存在'){ //这是data不是d1
                    return false;
        } else {
                    return true;
        }
    }
      

  4.   


    谢谢你,另外 
    我不想alert出来显示提示
    还在<span>下显示怎么做?alert(o.text());
      

  5.   

    $("#你的span id").html(o.text());就不用alert了