案例17-validate自定义校验规则校验验证码是否输入正确

1 自定义校验规则代码

<script type="text/javascript">
    //使用validate插件进行表单的校验
    $(function(){
        $("#myform").validate({
            rules:{
                checkCode:{
                    "required":true,
                    "checkVerificationCode":true
                }
                
            },
            messages:{
                checkCode:{
                    "required":"验证码不能为空",
                    "checkVerificationCode":"验证码输入错误"
                }
            }
        });
    });

//自定义校验规则校验验证码是否正确 $.validator.addMethod( //规则的名称 "checkVerificationCode", //校验的函数 function(value,element,params){ //定义一个标志 var isTrueFlag= false; //value:表单输入框中输入的内容 //element:被校验的元素对象 //params:规则对应的参数值 //目的:对输入的checkCode进行ajax校验 $.ajax({ "async":false,/*必须要是同步的的方式 */ "url":"${pageContext.request.contextPath}/checkVC", "data":{"checkCode":value}, "type":"POST", "dataType":"json", "success":function(data){ isTrueFlag = data.isTrue; /* alert(isTrueFlag); */ } }); //返回false代表该校验器不通过 return isTrueFlag; } ); </script>

2 servlet代码

package www.test.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;

public class CheckVCServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // 解决乱码问题
        request.setCharacterEncoding("UTF-8");

        // 判断验证码是否正确
        // 获得页面输入的验证
        String checkCode_client = request.getParameter("checkCode");
        System.out.println(checkCode_client);
        // 获得生成图片的文字的验证码
        String checkCode_session = (String) request.getSession().getAttribute("checkcode_session");
        System.out.println(checkCode_session);
        // 比对页面的和生成图片的文字的验证码是否一致
        boolean isTrue=true;
        if (!checkCode_session.equals(checkCode_client)) {
            isTrue=false;
        }
        String json ="{\"isTrue\":"+isTrue+"}";
        
        response.getWriter().write(json);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

注意:表单校验不通过的时候不会提交。

posted @ 2018-02-11 19:31  Jepson6669  阅读(468)  评论(0编辑  收藏  举报