鉴于插件(jQuery Masked Input Plugin)的构建方式,Tomanow 的方法是要走的路。
如果输入大小只能具有与掩码相同数量的字符。
我建议这种方法:
补充插件
(function($) {
$.fn.extend({
mask2: function(mask, settings){
//store in data
this.data('data-mask',mask);
this.data('data-maskLength', mask.length);
//add data attributes as html markups (optional)
this.attr('data-mask',mask);
this.attr('data-maskLength', mask.length);
// add validator rule (see section add custom method; i haven't test it yet you can remove it if necessary)
$( "#myinput" ).rules( "add", {
maskRule: true
});
// add original mask plugin
return this.mask(mask, settings);
}
});
})(jQuery);
现在,您使用 mask2 而不是使用掩码
$("#date").mask2("99/99/9999");
添加自定义验证方法
最简单的方法是使用data-maskLength
key ,(你可能需要把它放在上面):
jQuery.validator.addMethod("maskRule", function(value, element, params) {
return value.length == element.data("data-maskLength");
}
我没有测试验证方法,但至少你可以检索掩码或其长度
你可以看到我在JsFiddle上做了什么