Inputmask最后一位数字的动态掩码变化

inputmask dynamic mask change on last digit

本文关键字:掩码 变化 动态 最后一位 数字 Inputmask      更新时间:2023-09-26

我想使用Jquery。Inputmask用于屏蔽电话号码输入,我的操作如下:

@Html.TextBoxFor(m => m.PhoneNumber, new {@class = "form-control mask-phone"})

在我的JS中我初始化了它:

$(".mask-phone").inputmask({
    mask: "(99)9{4,5}-9999}",
    greedy: false
});

,它工作得很好,但是动态输入是在第六个数字之后触发的,我必须手动将插入符号放在连字符之后。是否有一种方法可以在输入最后一个数字后才触发掩码中的动态?

我不确定我是否讲清楚了。在短期内,我想要一个掩码,从:

(99)9999-9999

:

(99)99999-9999

无需在输入第六个数字后拖动插入符号

4年后:这种情况的解决方案现在在输入掩码文档中,在'keepStatic'选项下。在这个例子中,你可以这样做:

$(".mask-phone").inputmask({
    mask: ["(99)9{4}-9999", "(99)9{5}-9999"],
    keepStatic: true
});

这就是我最终使用的,它工作得很好

$(".mask-telefone").on("keydown change", function() {
    if ($(this).val().replace(/[_'-()]/g,"").length >= 10){
        $(this).inputmask("(99)99999-9999");
    else {
        $(this).inputmask("(99)9999-9999");
    }
});