Как настроить плагин jQuery для маскированного ввода - PullRequest
0 голосов
/ 25 июля 2010

Я использую плагин маски jQuery из

http://digitalbush.com/projects/masked-input-plugin/

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

То, что я хочу, это

  1. Я могу вводить только цифры.
  2. Все цифры будут автоматически форматироваться (,) после каждого третьего числа.
  3. Только двацифры после (.)

Я использую эту маску:

$("#product").mask("999,999,999.99",{placeholder:" "});

Проблема в том, что если мне нужно набрать только 150.50, мне нужно навести курсор наточное место и тип.

Например, в приведенной выше маске, если я наберу 150.50, текстовое поле выглядит следующим образом: [][][],[][][],150.50 где [] - пробел.Я хочу, чтобы показывалось только 150.50 без лишних (,) с.
Если я наберу 1150.50, то покажу 1 150.50, но я хочу, чтобы форматирование происходило автоматически, когда я закончу печатать и не хочу показыватьдополнительные любые (,) s.

Ответы [ 2 ]

2 голосов
/ 25 июля 2010

Габи ответ правильный и предоставляет гораздо больше возможностей, чем мой. Тем не менее, я выбрал решение для ваших конкретных потребностей. Посмотреть здесь .

$('input').bind('keyup blur', function(){
    var i, j, final = '', input = $(this),
        raw = input.val().replace(/[^\d]/g, '');
    while (raw.substr(0, 1) === '0' && raw.length > 2) { //remove leading 0s for large numbers
        raw = raw.substr(1);
    }
    while (raw.length < 2) { //pad with up to two 0s for small numbers
        raw = '0' + raw;
    }
    for (i = 1; i <= raw.length; i++) { //format the number as ##,###,###.##
        j = raw.length - i;
        final =
            (i === 2 ? '.' : ((i + 1) % 3) === 0 && i != raw.length ? ',' : '')
            + raw.substr(j, 1)
            + final;
    }
    input.val(final);
});
1 голос
/ 25 июля 2010

Вам нужен не плагин для маскировки, а плагин для форматирования.

посмотрите на http://plugins.jquery.com/project/number_format

...