对jquery.validate.js的扩展方法
//字节长度
jQuery.validator.addMethod("byteLength", function(value, element, param) {
var length = value.length;
for( var i = 0; i < value.length; i++){
if(value.charCodeAt(i) > 127){
length++;
}
}
return this.optional(element) || (length <= param);
}, "输入长度必须小于{0}个字节(一个中文字算2个字节)");
在jsp页面标签中使用 required为必填,byteLength为扩展方法
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="text" id="bizId" name="bizId" class="input-large { required :true, byteLength :3}"/>
</td>
</tr>
使用后,必填可以校验,字段长度无法校验,调试发现,并没有调用校验方法,不知道是不是class中填写的参数问题?
电话号码扩展校验
//联系电话(手机/电话皆可)验证
jQuery.validator.addMethod("isPhone", function(value,element) {
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
var tel = /^\d{3,4}-?\d{7,9}$/;
return this.optional(element) || (tel.test(value) || mobile.test(value));
}, "请正确填写您的联系电话");
在jsp页面标签中使用 required为必填,isPhone为扩展方法
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="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 ) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length <= param;
}
jsp中使用
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="text" id="bizId" name="bizId" class="input-large { required :true, maxlength :3}"/>
</td>
</tr>
使用后,长度校验还是不行,我看网上很多地方都这么有写,为什么我的就是不行呢?求指教!!!
//字节长度
jQuery.validator.addMethod("byteLength", function(value, element, param) {
var length = value.length;
for( var i = 0; i < value.length; i++){
if(value.charCodeAt(i) > 127){
length++;
}
}
return this.optional(element) || (length <= param);
}, "输入长度必须小于{0}个字节(一个中文字算2个字节)");
在jsp页面标签中使用 required为必填,byteLength为扩展方法
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="text" id="bizId" name="bizId" class="input-large { required :true, byteLength :3}"/>
</td>
</tr>
使用后,必填可以校验,字段长度无法校验,调试发现,并没有调用校验方法,不知道是不是class中填写的参数问题?
电话号码扩展校验
//联系电话(手机/电话皆可)验证
jQuery.validator.addMethod("isPhone", function(value,element) {
var mobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;
var tel = /^\d{3,4}-?\d{7,9}$/;
return this.optional(element) || (tel.test(value) || mobile.test(value));
}, "请正确填写您的联系电话");
在jsp页面标签中使用 required为必填,isPhone为扩展方法
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="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 ) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length <= param;
}
jsp中使用
<table>
<tr>
<td class="lab">业务系统ID:</td>
<td class="field">
<input type="text" id="bizId" name="bizId" class="input-large { required :true, maxlength :3}"/>
</td>
</tr>
使用后,长度校验还是不行,我看网上很多地方都这么有写,为什么我的就是不行呢?求指教!!!