Я создаю свой первый плагин и решил попробовать создать плагин маски, который бы использовал символ #
в качестве символа маски. Так что, если я позвонил:
('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);