jquery $.ajax验证用户名是否存在的例子

发布时间:2019-08-07编辑:脚本学堂
一段jquery ajax代码,用于验证用户名是否存在,jquery在用户注册或用户登录程序中,验证用户名存在与否,需要的朋友参考下。

兼容IE6、IE7、FF、Chrome浏览器,jquery验证用户名是否已存在。

1、AjaxXMLServer的Servlet代码:
 

复制代码 代码示例:

package com.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class AjaxXMLServer extends HttpServlet {
   public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
try {
 //响应的Content-Type必须是text/xml,因为在jquery中数据接收的格式为xml
 response.setContentType("text/xml;charset=utf-8");
 request.setCharacterEncoding("utf-8");
 response.setCharacterEncoding("utf-8");
 PrintWriter out = response.getWriter();
 //1、获取参数
 String userName=request.getParameter("userName");
 //2、返回的数据类型拼装成xml格式
 StringBuilder builder=new StringBuilder();
 builder.append("<message>");
 if(userName==null || userName.length()==0){
builder.append("用户名不能为空").append("</message>");
 }else{
//3.校验操作
if(userName.equals("tfq")){
//返回给用户提示信息
builder.append("用户名["+userName+"]已经存在,请重新输入用户名").append("</message>");
}else{
builder.append("用户名["+userName+"]尚未被注册,可以使用该用户名").append("</message>");
}
out.println(builder.toString());
 }
   } catch (Exception e) {
 e.printStackTrace();
   }
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {
   response.setContentType("text/xml");
   request.setCharacterEncoding("utf-8");
   response.setCharacterEncoding("utf-8");
   doGet(request,response);
}
}

2、checkUserJquery.html文件:
 

复制代码 代码示例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
 <title>My JSP 'checkUser starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="js/jquery-1.4.2.js" ></script>
<script type="text/javascript" src="js/myVlidate_jquery.js" ></script>
  </head>
  <body>
<center>
   <br />
   用户名:<input type="text" id="userName" />
   <input type="button" value="校验" onclick="validate()" />
   <div id="showResult"></div>
</center>
  </body>
</html>

3、myVlidate_jquery.js文件:
 

复制代码 代码示例:

//验证用户是否存在
function validate() {
// 1获取文本框的内容
// document.getElementById("userName"); dom的方式
// Jquery的查找节点的方式,参数中#加上id属性值可以找到一个节点
var obj = $("#userName");
var userName = obj.val();
//alert("userName: " + userName);

// 2将获取到的内容发送给服务器的servlet
// 调用jquery的XMLHTTPrequest对象get请求的封装
//$.get("servlet/CheckUserName?userName=" + userName, null, callback);
//JS中定义一个简单对象的格式 www.jb200.com
var jsObj={name:"123",age:30};
//使用jquery的XMLHTTPRequest对象get请求的封装
$.ajax({
   type:"POST",   //http请求方式
   url:"servlet/AjaxXMLServer", //发送给服务器的url
   data:"userName="+userName, //发送给服务器的参数
   dataType:"xml",  //告诉JQUERY返回的数据格式(注意此处数据格式一定要与提交的servlet返回的数据格式一致,不然不会调用callback)
   success:callback //定义交互完成,并且服务器正确返回数据时调用回调函数
});
}

// 回调函数
function callback(data) {
// 3接收报务器返回的数据
//首先需要将data这个dom对象中的数据解析出来
var jqueryObj=$(data);
//获取message节点
var message=jqueryObj.children();
//获取文本内容
var text=message.text();
// 4把返回的数据在div中显示
$("#showResult").html(text);
}
 

注意,servlet与query中返回的数据要一致。