Длина входной маски jQuery - PullRequest
       22

Длина входной маски jQuery

9 голосов
/ 19 марта 2010

У меня есть поле ввода, и я хочу ограничить его буквенно-цифровыми (A-Z, a-z, 0-9) символами, с минимальной длиной поля 5 и максимальной длиной до 15 символов.

Кто-нибудь знает, как я могу сделать это с помощью jQuery?

Я пытаюсь использовать маску ввода jQuery от digitalBush - http://digitalbush.com/projects/masked-input-plugin/

Проблема в том, что если Я не введу 15 символов, поле станет пустым. Если я введу «012345678912345» (15 символов) в поле ввода, то значение будет сохранено, и все в порядке.

Но если я введу «12345» в качестве имени пользователя, когда это поле ввода потеряет фокус, его значение снова станет пустым. Есть ли что-то, что я могу изменить в «определениях» или опциях, где-то это исправляет?

Большое спасибо за вашу помощь:)

Тим

Ответы [ 2 ]

25 голосов
/ 19 марта 2010

Это делается так: '*' буквенно-цифровая, что-нибудь после '?' необязательно.

jQuery(function($){
   $("#elem").mask("*****?**********");
});
1 голос
/ 25 сентября 2015

Также, если вы хотите изменить маску в зависимости от длины символа, как я сделал.Нашел этот отличный способ:

var arr = ['HomePhone',
    'CellPhone',
    'EmergencyPhone'
    ];
  for (var i in arr)
  {
    $('input[name='+arr[i]+']').mask("999-999-9999?9")
        .keydown(function () {
          var $elem = $(this);
          var a = this.value.replace(/\D/g, "").length;
          setTimeout(function () {
            var n = $elem.val().replace(/\D/g, "").length;
            if (n !== a && (n === 10 || n === 11)) {
              var mask = (n === 11 ? "9999-999-9999" : "999-999-9999?9");
              $elem.mask(mask);
            }
          }, 1);
        });
  }
...