概述
本文介绍Validate自定义表单校验方式。Validate插件虽然提供了丰富的验证规则,但在很多时候仍然很难满足我们的开发需求,在注册页面我们需要通过ajax验证用户输入的用户名是否已经被他人注册,那此时通过传统的Validate验证方式已经无法满足需求了! 我们可以通过自定义验证方法来结合ajax实现这个需求。
自定义ajax基本语法
因为validate是JQuery的插件,所以在此之前必须先导入JQuery和validate的JS包。
在这里需要明确的是
addMethod()方法中需要传入两个参数,第一个参数为自定义校验规则的规则名称,第二个为校验时所调用的方法(校验函数)。
在传入的校验函数中有三个形参(具体作用前面已经指出)
校验函数需要返回布尔值,如果返回为true,则不会显示绑定的提示信息。如果为false,就会显示绑定的信息(“用户名已存在”)
用户名的查重需求的具体实现
前端页面实现 会员注册
用户名
后端页面实现
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转换工具的使用