Validate插件的自定义验证方法入门(结合Ajax实现用户名的数据库查重)

概述

     本文介绍Validate自定义表单校验方式。Validate插件虽然提供了丰富的验证规则,但在很多时候仍然很难满足我们的开发需求,在注册页面我们需要通过ajax验证用户输入的用户名是否已经被他人注册,那此时通过传统的Validate验证方式已经无法满足需求了! 我们可以通过自定义验证方法来结合ajax实现这个需求。

 

自定义ajax基本语法

     因为validate是JQuery的插件,所以在此之前必须先导入JQuery和validate的JS包。
 

在这里需要明确的是

  • addMethod()方法中需要传入两个参数,第一个参数为自定义校验规则的规则名称,第二个为校验时所调用的方法(校验函数)。
  • 在传入的校验函数中有三个形参(具体作用前面已经指出)
  • 校验函数需要返回布尔值,如果返回为true,则不会显示绑定的提示信息。如果为false,就会显示绑定的信息(“用户名已存在”)

 

用户名的查重需求的具体实现

 

 

  • 前端页面实现
     
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    	pageEncoding="UTF-8"%>
    
    
    	
    		会员注册
    	
    	
    	
    	
    	
    	
    	
    		
    用户名


     

 

  • 后端页面实现
  • package com.web.servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.service.UserService;
    
    public class CheckUsernameServlet extends HttpServlet {
    	
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		request.setCharacterEncoding("UTF-8");
    		String username=request.getParameter("username");
    		UserService service=new UserService();
    		//isExist代表用户名是否存在,true代表存在,false代表不存在
    		boolean isExist=service.checkUserisExist(username);
    		//封装json数据
    		String json="{\"isExist\":"+isExist+"}";
    		response.getWriter().write(json);
    	}
    	
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doGet(request, response);
    	}
    
    }
    

在这里我们需要明确

  • ajax如何收服务器传来的数据的,在上面的ajax中定义了一个回调函数("success":function(data){...})。这个回调函数中有一个有一data参数,它代表服务器传递过来的数据,可能是js对象,也可能是个文本...。但在前面已经设置data是json("dataType":"json"),所以这里的data已经被解析为一个js对象了。所以我们可以通过data.isExist得到对象中的数据。
  • 服务器端如何传输JSON数据的,服务器端通过response.getWriter().wirte(json);即可传输数据。在服务器端的json字符串传到客户端后会自动解析为js对象。

 

下面是博主的其他文章,喜欢的博友们点个关注,谢谢您的支持。

Java8 Lambda表达式入门

JDK8之前,匿名内部类访问的局部变量为什么必须要用final修饰

EL表达式与JSTL简单入门

JSON转换工具的使用

                           

你可能感兴趣的:(WEB前端,JQuery,validate,ajax)