jquery validate 验证基础

  jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API。

  对于它基础的验证规则这里不做赘述,主要讲解它的异步验证。

  需求如下:在一个form表中,需要根据用户ID来验证用户名,若数据库中已存在同样的用户ID对应同样的记录名称,则禁止插入或更新(更新时若记录名未发生改变,则需要再判断是否除此记录之外还存在同名称的记录)。

  部分jsp页面代码如下:

 1  <div class="control-group">
 2         <label class="control-label">userId:</label>
 3
 4         <div class="controls">
 5             <form:input path="userId" htmlEscape="false" maxlength="64" class="input-xlarge "/>
 6             <span class="help-inline"><font color="red">*</font> </span>
 7         </div>
 8     </div>
 9     <div class="control-group">
10         <label class="control-label">名称:</label>
11
12         <div class="controls">
13             <input type="hidden" id="oldName" name="oldName" value="${doctorPatientRecord.name}"/>
14             <form:input path="name" htmlEscape="false" maxlength="100" class="input-xlarge "/>
15             <span class="help-inline"><font color="red">*</font> </span>
16         </div>
17     </div>

  上面有两个需要用到的标签:userId和name,另外为了更新时是否为改变记录名而添加了一个新的input标签,存放的是原记录名这些标签中有大量的属性设置,其实是非必须的,一定要用到的有标签的name属性,因为jQuery 验证的时候是根据name属性名来查找对象的。

  jQuery代码如下:

rules: {
                    userId: {required: true, remote: "${ctx}/doctor/doctorpatientrecord/checkUser?"},
                    name: {
                        required: true,
                        remote: {
                            url: "${ctx}/doctor/doctorpatientrecord/checkName",
                            type: "post",
                            dataType: "json",
                            data: {
                                oldName:‘${doctorPatientRecord.name}‘,
                                name: function () {
                                    return $("#name").val();
                                },
                                userId: function () {
                                    return $("#userId").val();
                                }
                            }
                        }
                    }
                },
messages: {
                    userId: {required: "用户ID不能为空", remote: "用户ID不存在"},
                    name: {required: "记录名不能为空", remote: "记录名已存在"}
                },

  jQuery代码中一共有两个验证,一个是验证userId一个是验证name,也就是我们的需求验证。其中userId的验证看起来很简便,由于个人理解及了解不多,只知道相对于name的验证方式,userId所使用的这种验证方式无法获取到最新的标签值。而在form中,userId的值是默认不会发生改变的,因此可以采用这种方法,userId的值已经传入到后台而不需要特地在url后去添加一个userId=xxxx;

  name的验证由于要获取到最新的值,因此只能采用这种比较笨重的方法,设置url,跳转方式为post,数据类型为json,需要传递的数据放在data 中,包括:userId,oldName,name。

  后台接收处理的方法代码如下:

 @RequestMapping(value = "checkUser")
    public String checkUser(String userId) {
        if (userId != null) {
            UserToken userToken = new UserToken();
            userToken.setUserId(userId);
            userToken = doctorUserTokenDao.get(userToken);
            if (userToken != null) {
                return "true";
            }
        }
        return "false";
    }

    /**
     * 验证记录名是否有效
     */
    @ResponseBody
    @RequiresPermissions("doctor:doctorpatientrecord:edit")
    @RequestMapping(value = "checkName")
    public String checkName(String oldName, String name, String userId) {
        if (name != null && name.equals(oldName)) {
            return "true";
        } else if (StringUtils.isNotBlank(name) && StringUtils.isNotBlank(userId)) {
            DoctorPatientRecord doctorPatientRecord = new DoctorPatientRecord();
            doctorPatientRecord.setName(name);
            doctorPatientRecord.setUserId(userId);
            List<DoctorPatientRecord> doctorPatientRecordList = doctorPatientRecordService.findListy(doctorPatientRecord);
            if (doctorPatientRecordList.size() == 0) {
                return "true";
            }
        }
        return "false";
    }

  jQuery validate 后台验证返回的结果只能是 true 字符串或者false字符串,不能是其他的值。后台接收的参数命名必须和jQuery 传过来的参数保持一致。

  

时间: 2024-10-09 23:21:23

jquery validate 验证基础的相关文章

jQuery Validate验证框架详解

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src

JQuery validate验证规则

//定义中文消息 var cnmsg = { required: "必选字段", remote: "请修正该字段", email: "请输入正确格式的电子邮件", url: "请输入合法的网址", date: "请输入合法的日期", dateISO: "请输入合法的日期 (ISO).", number: "请输入合法的数字", digits: "只能输入整数

【转】jQuery Validate验证框架详解

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src

ligerui的jquery.validate验证需要添加validate=&quot;{required:true,minlength:8,equalTo:&#39;#newpassword&#39;}&quot;

ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}" ligerui的jquery.validate验证需要添加validate="{required:true,minlength:8,equalTo:'#newpassword'}"

jQuery Validate验证框架详解(转)

jQuery校验官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一.导入js库 <script type="text/javascript" src="<%=path %>/validate/jquery-1.6.2.min.js"></script> <script type="text/javascript" src

jquery.validate 验证机制

jquery.validate 验证机制 金刚 juqery juqery.validate 在开发系统时,使用了jquery.validate.js 这个验证插件,来校验数据合法性 重点 验证是以input的name值来验证的,不是通过id来验证的. 说明 序号 规则 描述 1 required:true 必须输入的字段. 2 remote:"check.php" 使用 ajax 方法调用 check.php 验证输入值. 3 email:true 必须输入正确格式的电子邮件. 4

jQuery.Validate验证库的使用介绍

jQuery.Validate验证库1.下载jquery.validate,这里我提供jquery-validation-1.9.0,点击下载 默认校验规则 (1)required:true               必输字段(2)remote:"check.php"          使用ajax方法调用check.php验证输入值(3)email:true                  必须输入正确格式的电子邮件(4)url:true                    必

自整理的jquery.Validate验证表达式

自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母    /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod("letters", function (value, element) { return this.optional(element) || /^[0-9a-zA-Z]*$/g.test(value); }, "只能输入数字和字母!"); 2. 数量必须是正整数     /^\+?[1-9]\

【JQ成长笔记】jQuery Validate验证插件

validate是一款很好的jq插件,提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 URL 和电子邮件验证,同时提供了一个用来编写用户自定义方法的 API.所有的捆绑方法默认使用英语作为错误信息,且已翻译成其他 37 种语言. 需要引入的js 1 <script type="text/javascript" src="../../scripts/jquery-1.3.1.js&qu