jQuery.metadata导入项目中,把校验写在样式中遇到的问题

对jquery.validate.js的扩展方法

//字节长度

jQuery.validator.addMethod("byteLength",function(value,element,param){

varlength=value.length;

for(vari=0;i<value.length;i++){

if(value.charCodeAt(i)>127){

length++;

}

}

returnthis.optional(element)||(length<=param);

},"输入长度必须小于{0}个字节(一个中文字算2个字节)");

在jsp页面标签中使用required为必填,byteLength为扩展方法

<table>

<tr>

<tdclass="lab">业务系统ID:</td>

<tdclass="field">

<inputtype="text"id="bizId"name="bizId"class="input-large{required:true,byteLength:3}"/>

</td>

</tr>

使用后,必填可以校验,字段长度无法校验,调试发现,并没有调用校验方法,不知道是不是class中填写的参数问题?

电话号码扩展校验

//联系电话(手机/电话皆可)验证

jQuery.validator.addMethod("isPhone",function(value,element){

varmobile=/^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;

vartel=/^\d{3,4}-?\d{7,9}$/;

returnthis.optional(element)||(tel.test(value)||mobile.test(value));

},"请正确填写您的联系电话");

在jsp页面标签中使用required为必填,isPhone为扩展方法

<table>

<tr>

<tdclass="lab">业务系统ID:</td>

<tdclass="field">

<inputtype="text"id="bizId"name="bizId"class="input-large{required:true,isPhone:true}"/>

</td>

</tr>

换成电话校验方法后,必填和电话都可以校验,为什么呢,同样是扩展方法,难道扩展方法参数不同(function(value,element)/function(value,element,param)),调用方式不同么?

jquery.validate.js自带的长度校验方法

maxlength:function(value,element,param){

varlength=$.isArray(value)?value.length:this.getLength($.trim(value),element);

returnthis.optional(element)||length<=param;

}

jsp中使用

<table>

<tr>

<tdclass="lab">业务系统ID:</td>

<tdclass="field">

<inputtype="text"id="bizId"name="bizId"class="input-large{required:true,maxlength:3}"/>

</td>

</tr>

使用后,长度校验还是不行,我看网上很多地方都这么有写,为什么我的就是不行呢?求指教!!!

相关推荐