`
ldzyz007
  • 浏览: 701787 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

jquery validator

阅读更多
1.引入jquery.js与jquery.validate.js(可到jquery网站下载)
2.jquery validator有两种方式:一种是直接在表单ui标签中加class="XXX",一种是为表单写rules验证规则。很明显,第一种很不灵活,有可能影响到css,messages的配置也不方便。
3.rules规则示例:
  $().ready(function() {
    // 自定义手机号码验证      
jQuery.validator.addMethod("isMobile", function(value, element) {      
        var length = value.length;         
        var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;  
        return this.optional(element) || (length == 11 && mobile.test(value));      
}, "请正确填写您的手机号码");

$("#teamForm").validate({
           rules: {
              "team.name":{
                 required:true,
                 remote: {   
                    url: "checkName.action",  //后台处理程序
                    type: "post",             //数据发送方式 
                    dataType: "json",         //接受数据格式    
                    data: {}                  //要传递的数据,默认已传递应用此规则的表单项
                 }
      },
      "team.phone":{
                 isMobile:true,
maxlength:20
      }
   },
           messages: {
              "team.name": {
                 required:"请输入团队名称",
                 remote:"此团队已存在,请使用其他名称"
              },
              "team.phone":{
isMobile:"请输入合法的移动电话",
maxlength:"移动电话不能超过20个字"
      }
           }
        });
  });

  注意事项及说明:
   1)其中$("#teamForm")中的teamForm是表单的ID,"team.name"是表单中name="team.name"属性值,主要是针对struts2中name="entry.属性"形式的input表单。如果是name="userName"的input,这里就不需要加""双引号,直接写userName:{}。另外特别注意验证规则中"team.name"的是针对表单中的name属性值而不是id的属性值
   2)remote:远程验证:只允许后台返回true或者false,要引入的包:struts2-json-plugin-2.1.8.1.jar、json-lib-2.1.jar、commons-相关包
     action示例:
     private boolean validate=false;
     private Teams team;
     get...
     set..
     public String checkName(){
        if(team.getName()在数据库中已经存在){
        this.validate=false;
        }else{
   this.validate=true;
        }
        return SUCCESS;
     }
     struts.xml配置
     <package name="team" namespace="/team" extends="json-default">
        <action name="checkName" class="teamAction" method="checkName">
          <result type="json">
             <param name="root">validate</param>
          </result>                     
        </action>
     </package>
  3)rules里配置验证规则,messages配置验证消息,两个要对应。
  4)jQuery.validator.addMethod("a", function(value, element) { }, "b"); 自定义验证方法的格式。
    a表示是该自定义验证方法的引用名称,value是jquery自动获取到被验证表单属性的值,element是该表单属性在document中的元素例如input,b是默认返回消息。
    自定义验证方法必须返回ture或false,this.optional(element) 这一句可有可不无。

4.jquery自带的验证方法

  (1)required:true               必输字段
  (2)remote:"check.php"          使用ajax方法调用check.php验证输入值,远程方法调用,只允许后台返回true或者false
  (3)email:true                  必须输入正确格式的电子邮件
  (4)url:true                    必须输入正确格式的网址
  (5)date:true                   必须输入正确格式的日期
  (6)dateISO:true                必须输入正确格式的日期(ISO),例如:2009-06-23,1998/01/22 只验证格式,不验证有效性
  (7)number:true                 必须输入合法的数字(负数,小数)
  (8)digits:true                 必须输入整数
  (9)creditcard:                 必须输入合法的信用卡号
  (10)equalTo:"#field"           输入值必须和#field相同
  (11)accept:                    输入拥有合法后缀名的字符串(上传文件的后缀)
      例:accept:"doc|xls|ppt|pdf|zip|rar"
  (12)maxlength:5                输入长度最多是5的字符串(汉字算一个字符)
  (13)minlength:10               输入长度最小是10的字符串(汉字算一个字符)
  (14)rangelength:[5,10]         输入长度必须介于 5 和 10 之间的字符串")(汉字算一个字符)
  (15)range:[5,10]               输入值必须介于 5 和 10 之间
  (16)max:5                      输入值不能大于5
  (17)min:10                     输入值不能小于10

  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics