inputmask 最后一位的动态掩码变化
inputmask dynamic mask change on last digit
我想用 Jquery.Inputmask 来屏蔽 phone 数字输入,我按如下方式进行操作:
@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
无需在键入第六个数字后拖动插入符号。
这就是我最终使用的,效果很好
$(".mask-telefone").on("keydown change", function() {
if ($(this).val().replace(/[_\-()]/g,"").length >= 10){
$(this).inputmask("(99)99999-9999");
else {
$(this).inputmask("(99)9999-9999");
}
});
4 年后:此案例的解决方案现在位于“keepStatic”选项下的输入掩码文档中。所以在这种情况下你可以这样做:
$(".mask-phone").inputmask({
mask: ["(99)9{4}-9999", "(99)9{5}-9999"],
keepStatic: true
});
我想用 Jquery.Inputmask 来屏蔽 phone 数字输入,我按如下方式进行操作:
@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
无需在键入第六个数字后拖动插入符号。
这就是我最终使用的,效果很好
$(".mask-telefone").on("keydown change", function() {
if ($(this).val().replace(/[_\-()]/g,"").length >= 10){
$(this).inputmask("(99)99999-9999");
else {
$(this).inputmask("(99)9999-9999");
}
});
4 年后:此案例的解决方案现在位于“keepStatic”选项下的输入掩码文档中。所以在这种情况下你可以这样做:
$(".mask-phone").inputmask({
mask: ["(99)9{4}-9999", "(99)9{5}-9999"],
keepStatic: true
});