鉴于插件(jQuery Masked Input Plugin)的构建方式Tom阿诺的方法是要走的路。
如果输入大小只能具有与掩码相同数量的字符。
我建议这个方法:
互补插件
(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);
现在不是使用面膜使用掩码2
$("#date").mask2("99/99/9999");
添加自定义的验证方法
最简单的方法是使用data-maskLength
键,(你可能需要把这个顶部):
jQuery.validator.addMethod("maskRule", function(value, element, params) {
return value.length == element.data("data-maskLength");
}
我还没有测试验证方法,但至少你可以检索面罩或它的长度
你可以看到我做了什么JsFiddle
你的代码在哪里? – Sparky
@Sparky我的问题不在于验证插件,实际上,我写的方法对硬编码掩码工作得很好。 –
没关系。在这里发布一个简洁的代码示例对其他人来说是有益的。 – Sparky