jquery 屏蔽输入使前两位数字不可编辑

jquery masked input make first two digits as non-editable

您好,我目前正在使用 jquery 掩码输入,我想将前两位数字设为永久数字。例如,我有一个数字 (09)191-234-567

(09)为永久掩码,后9位可编辑

如果我这样做,$("#phone").mask("(99) 999-999-999"); 所有数字都是可编辑的。我尝试搜索但没有找到运气。

提前致谢。

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">

如果您使用的是 <script src="~/Root/js/jquery.mask.min.js"></script> 插件,为了在掩码中设置 0 和 9,例如+09 ### ### ## 那么你需要将 0 和 9 的翻译设置为 null。

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