Необязательный символ в маске ввода - PullRequest
5 голосов
/ 03 марта 2012

Как мне указать необязательный символ в маске ввода?

Я нашел этот подключаемый модуль маскирования http://digitalbush.com/projects/masked-input-plugin/ и эти определения маски.маска ввода для 12-часового формата времени, например, 11:00.Я бы хотел, чтобы пользователь мог указать только одну цифру для «часа».Вместо того, чтобы вводить 01:00, пользователь должен иметь возможность вводить 1:00.Как мне это сделать?

Ответы [ 4 ]

4 голосов
/ 03 марта 2012

Вам необходимо использовать ? для необязательных символов, поэтому в вашем случае вы должны использовать "2?9:69".

3 голосов
/ 03 марта 2012

Цитата и пример с страницы , на которую вы ссылались в своем вопросе:

Часть вашей маски может быть опциональнойЧто-нибудь перечисленное после '?'внутри маски считается необязательным пользовательский ввод.Типичным примером этого является номер телефона + дополнительный добавочный номер.

jQuery(function($){
   $("#phone").mask("(999) 999-9999? x99999");
});
0 голосов
/ 23 октября 2013

У меня похожая проблема, которую я пытаюсь решить для переменных валют (от 0,00 до 10000,00 долларов США), и я не совсем понимаю, как работает плагин.

С одной стороны, бит $.mask.definitions['symbol'] = '???' выглядит так, как будто он использует фрагмент регулярного выражения, основанный на примерах в справочнике по API, и в некоторой степени подтвержденный этой частью в исходном коде функции mask:

$.each(mask.split(""), function (i, c) {
    if (c == '?') {
        len--;
        partialPosition = i;
    } else if (defs[c]) {
        tests.push(new RegExp(defs[c]));
        if (firstNonMaskPos == null)
            firstNonMaskPos = tests.length - 1;
    } else {
        tests.push(null);
    }
});

... С другой стороны, определение маски []|[0-9] не работает (я пытаюсь сделать пустую строку или 0-9, для тех, кто не является грамотным в регулярном выражении.) Для справки я пытаюсь построить маска для выполнения условия 0,00-10000,00, например oooo9.99, где o равно []|[0-9].

Поскольку код подтверждает, что это основано на регулярных выражениях, шаблон нуля или диапазона должен работать, но это не так; это более неясная ошибка в структуре маски. Если только Я не попытается что-то сделать неправильно, что также возможно ...

0 голосов
/ 19 июня 2012

Вы можете использовать $.mask.definitions['g']="[0-9 ]";

...