Не работает часть моего первого плагина (маски)? - PullRequest
0 голосов
/ 28 февраля 2011

Я создаю свой первый плагин и решил попробовать создать плагин маски, который бы использовал символ # в качестве символа маски. Так что, если я позвонил:

 ('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 голосов
/ 28 февраля 2011

Я немного поиграл с этим здесь http://jsfiddle.net/gJ68n/ Это, безусловно, можно оптимизировать, но я думаю, что это может заставить вас двигаться в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...