<%@ page language="java"  pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
<html>
  <head>
    <title>Using Ajax for validation</title>
   <script type="text/javascript">
      var xmlHttp;
       function createXMLHttpRequest() {            if (window.ActiveXObject) {                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if (window.XMLHttpRequest) {                xmlHttp = new XMLHttpRequest();
           }
        }
        function validate1() {            createXMLHttpRequest();            var date = document.getElementById("qxfp");            var url = "/Prj_alsk/servlet/Validaction?qxfp=" + date.value;            xmlHttp.open("GET", url, true);            xmlHttp.onreadystatechange = callback1;            xmlHttp.send(null);        }
            function validate2() {            createXMLHttpRequest();            var date = document.getElementById("username");            var url = "/Prj_alsk/servlet/Validaction?username=" + date.value;            xmlHttp.open("GET", url, true);            xmlHttp.onreadystatechange = callback2;            xmlHttp.send(null);        }
       function callback1() {            if (xmlHttp.readyState == 4) {                if (xmlHttp.status == 200) {                    var mes1 =                       xmlHttp.responseXML                           .getElementsByTagName("message1")[0].firstChild.data;
                
                    var val1 =                       xmlHttp.responseXML                            .getElementsByTagName("passed1")[0].firstChild.data;
                   
                    setMessage1(mes1, val1);
                   
                }
           }
       }
       function callback2() {            if (xmlHttp.readyState == 4) {                if (xmlHttp.status == 200) {                    var mes2 =                       xmlHttp.responseXML                           .getElementsByTagName("message2")[0].firstChild.data;
                
                    var val2 =                       xmlHttp.responseXML                            .getElementsByTagName("passed2")[0].firstChild.data;
                   
                    setMessage2(mes2, val2);
                   
                }
           }
       }
        function setMessage1(message, isValid) {            var messageArea1 = document.getElementById("dateMessage1");
           
            var fontColor = "red";            if (isValid == "true") {                fontColor = "green";            }            messageArea1.innerHTML = "<font color=" + fontColor + ">"                 + message + " </font>";
           
        }
             function setMessage2(message, isValid) {            var messageArea2 = document.getElementById("dateMessage2");
           
            var fontColor = "red";            if (isValid == "true") {                fontColor = "green";            }            messageArea2.innerHTML = "<font color=" + fontColor + ">"                 + message + " </font>";
           
        }
     </script>
 </head>
<body>
<center> <font color="royalblue" face=Arial><h1><b>&nbsp;&nbsp;系统登陆</b></h1></font> <br>
<form >
    <strong>岗&nbsp;&nbsp;&nbsp;&nbsp;位</strong>:
    <input type="text" id="qxfp" onchange="validate1();"/>
     <span id="dateMessage1"></span> <br>
   
     <strong>用户名</strong>:
      <input type="text" id="username" onchange="validate2();"/>
      <span id="dateMessage2"></span><br>
   
     <strong>密&nbsp;&nbsp;&nbsp;&nbsp;码</strong>:
       <input type="password" id="password" onChange="validate3();"/>
      <span id="dateMessage3"></span><br>
       <input type="submit" value="登录"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="reset"  value="清空"/>
      </form>
</center>
</body>
</html>
Validaction.java
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*; public class Validaction extends HttpServlet {
   protected void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {
     response.setCharacterEncoding("UTF-8");
     PrintWriter out = response.getWriter();
     String qxfp =request.getParameter("qxfp");
       boolean passed1 = validateDate1(qxfp);
        response.setContentType("text/xml");
       response.setHeader("Cache-Control", "no-cache");
       String message1 = "输入不符合要求!";
        if (passed1) {            message1 = "√";        }        out.println("<response>");        out.println("<passed1>" + Boolean.toString(passed1) + "</passed1>");        out.println("<message1>" + message1 + "</message1>");        out.println("</response>");        out.close();
        String username =request.getParameter("username");
        boolean passed2 = validateDate2(username);
        response.setContentType("text/xml");
        response.setHeader("Cache-Control", "no-cache");
        String message2 = "you are wrong!";
           if (passed2) {            message2 = "√";        }        out.println("<response>");        out.println("<passed2>" + Boolean.toString(passed2) + "</passed2>");        out.println("<message2>" + message2 + "</message2>");        out.println("</response>");        out.close();
   }
   private boolean validateDate1(String date) {
        boolean isValid = true;
        if(date != null) {
          if(!date.equals("abc")){ 
           isValid = false;   
          } 
                 }
        else isValid = false; 
               return isValid;
    }
   private boolean validateDate2(String date) {
       boolean isValid = true;
       if(date != null) {
         if(!date.equals("123")){ 
          isValid = false;   
         } 
                }
       else isValid = false; 
              return isValid;
   }
 }第一个文本框可以输出提示信息 为什么第二个文本框不行?