不能将我的第一个插件(蒙版)的一部分工作?

时间:2011-02-28 20:13:02

标签: jquery jquery-plugins

我正在创建我的第一个插件,并决定尝试创建一个使用#字符作为掩码字符的掩码插件。所以,如果我打电话:

 ('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);   

1 个答案:

答案 0 :(得分:0)

我在这里玩了一下http://jsfiddle.net/gJ68n/这当然可以优化,但我认为它可能会让你朝着正确的方向前进。