我正在创建我的第一个插件,并决定尝试创建一个使用#
字符作为掩码字符的掩码插件。所以,如果我打电话:
('input').mask('(###)-###-####');
掩码将变为( )- -
所有#将被空格替换,因此只显示掩码。我有点跳过这个,只是想看看我是否得到了按键才能工作。我想要做的是当用户键入一个字符时,我想在第一次出现#字符时放置字符。这就是我想要的,掩码从( )- -
开始。如果用户键入3,则应显示
(3 )- -
。接下来,它可能类似于(35 )- -
。这一直持续到掩模完成。下面的脚本不是很好,可能不是最好的方法,但只记得我只是想学习。
(function($) {
$.fn.mask = function(options) {
var
defaults = {
mask: '',
maskColor: '#c4c4c4',
inputColor: '#000000'
},
settings = $.extend({},defaults,options);
this.keypress(function(e)
{
var text = '';
var length = settings.mask.length;
for(var i = 0; i < length; i++)
{
var c = settings.mask.charCodeAt(i);
if(c != '35') //35 is the # character
{
text += settings.mask.charAt(i); /*Trying to do (342)-292-2029
for example, but after the
first character, it does
()-()-()3 instead. */
}
}
$(this).val(text);
});
}
})(jQuery);