案例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);
    }

}

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

原文地址:https://www.cnblogs.com/jepson6669/p/8443049.html

时间: 2024-08-29 09:14:05

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

shiro 实现自定义权限规则校验

<span style="font-family: Arial, Helvetica, sans-serif;">在系统中使用shiro进行权限管理,当用户访问没有权限的资源时会跳转到指定的登录url.</span> 但是如果系统中支持手机app,手机访问时没有使用session进行登录凭证管理,而是使用token,有两种解决方法: 1:支持手机客户端访问的资源在权限配置中配置成anon 2:实现自定义认证拦截器,对用户请求资源进行认证 显然第一种方法不适用,这

SpringBoot2.0 基础案例(17):自定义启动页,项目打包和指定运行环境

本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/spring-boot-base 一.打包简介 springboot的打包方式有很多种.可以打war包,可以打jar包,可以使用jekins进行打包部署的.不推荐用war包,SpringBoot适合前后端分离,打成jar进行部署更加方便快捷. 二.自定义启动页 banner.txt内容 ======================= No BUG ======================= 这

Jquery Validate 默认校验规则及常用的自定义验证规则

Jquery Validate 相关参数及常用的自定义验证规则 一.官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 二.默认校验规则 (1).required:true 必输字段 (2).remote:"remote-valid.jsp" 使用ajax方法调用remote-valid.jsp验证输入值 (3).email:true 必须输入正确格式的电子邮件 (4).url:true 必须输入正确格式

EasyUI 扩展自定义EasyUI校验规则 验证规则(常用的)

例如 校验输入框只能录入0-1000之间 最多有2位小数的数字 表单<input type="text" id="rate" name="rate" required="true" class="easyui-validatebox"  validType="rateCheck[0,1000]"  maxlength="6" /> $.extend($.f

Jquery Validate 相关参数及常用的自定义验证规则

一.官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 二.默认校验规则 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 (1).required:true               必输字段 (2).remote:"remote-valid.jsp"   使用ajax方法调用remote-valid.jsp验证输入值 (3).email:true          

EasyUI 扩展自己定义EasyUI校验规则 验证规则(经常使用的)

比如 校验输入框仅仅能录入0-1000之间 最多有2位小数的数字 表单<input type="text" id="rate" name="rate" required="true" class="easyui-validatebox"  validType="rateCheck[0,1000]"  maxlength="6" /> $.extend($.

vs2017 自定义生成规则 错误 MSB3721 命令 ”已退出,返回代码为 1。

错误 MSB3721 命令 ”已退出,返回代码为 1. 解决办法:去掉yasm复选框,改为masm vs2017 自定义生成规则-编译汇编代码 VC++调用yasm编译汇编代码有三种方法:Custom Build..rules文件..targets文件. 1 Custom Build Custom Build的优点是适用面广,vc6~vc2015都能使用:缺点是修改命令行参数稍显麻烦. 图1.19 Outputs是编译*.asm后的输出文件,连接时会用到此文件.上图的设置为"(IntDir)$(

JWT 认证 签发与校验token 多方式登陆 自定义认证规则反爬 admin密文显示

一 .认证方法比较 1.认证规则图 django 前后端不分离 csrf认证 drf 前后端分离 禁用csrf 2. 认证规则演变图 数据库session认证:低效 缓存认证:高效 jwt认证:高效 3. 认证比较 """ 1)session存储token,需要数据库参与,耗服务器资源.低效 2)缓存存token,需要缓存参与,高效,不易集群 3)客户端存token,服务器存签发与交易token的算法,高效,易集群 """ 缓存认证: 不易并发

struts2 自定义校验规则

自定义校验规则:(了解) 在Struts2自定义校验规则: 1.实现一个Validator 接口. 2.一般开发中继承ValidatorSupport 或者 FieldValidatorSupport * ValidatorSupport           :不是针对一个字段校验. 校验确认密码(与密码字段比较) * FieldValidatorSupport :针对一个字段的校验. 步骤: 1.编写一个类继承FieldValidatorSupport public void validate