Маскированный ввод jquery делает первые две цифры нередактируемыми

Привет, в настоящее время я использую ввод с маской jquery и хочу сделать первые две цифры постоянными числами. Например, у меня есть число вроде (09)191-234-567

(09) — это постоянная маска, а следующие 9 цифр доступны для редактирования.

ЕСЛИ я это сделаю, $("#phone").mask("(99) 999-999-999"); все цифры будут доступны для редактирования. Я пытался искать, но не нашел удачи.

Заранее спасибо.


person Mace Munch    schedule 19.07.2018    source источник


Ответы (2)


Плагин maskedinput (о котором, как я полагаю, вы говорите) позволяет вам определять собственные маски.

Это означает, что вы можете добавить свой собственный маскирующий символ для чисел (например, #) и удалить определение маскирования для 9, чтобы он больше ничего не делал.

$.mask.definitions['#'] = $.mask.definitions['9'];  //Set # to do what 9 does
$.mask.definitions['9'] = null;                     //Remove 9 as a masking character
$("input").mask("(09) ###-###-###");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script>
<input type="text">

person Tyler Roper    schedule 19.07.2018
comment
Спасибо. Оно работает. Я должен спросить, почему ноль нельзя редактировать, если определено только 9. - person Mace Munch; 19.07.2018
comment
По умолчанию символ 9 является числовой маской, однако 0 не имеет значения - он уже ведет себя так, как вам нужно в вашем примере. Нам нужно только удалить определение для 9. - person Tyler Roper; 19.07.2018
comment
Ах. В порядке. Так что это имеет смысл. Еще раз спасибо, сэр - person Mace Munch; 20.07.2018

Если вы используете плагин <script src="~/Root/js/jquery.mask.min.js"></script>, чтобы установить 0 и 9 в маске, например. +09 ### ### ## тогда вам нужно установить переводы для 0 и 9 на ноль.

 $('.' + className).mask('+09 ### ### ##', {
        translation: {
            '0': null,
            '9': null,
            '#': { pattern: /\d/, recursive: true },
        }
    });
person ID10T_E330r    schedule 08.02.2021