我正在尝试在手机输入中应用遮罩。我的jQuery版本是1.11,我使用Masked Input Js和下面的代码。
尽管如此,掩码仍然在最后一个数字之前添加问号。可能导致这种情况的原因是什么?
$.mask.definitions['~'] = "[+-]";
$("#id_phone").focusout(function () {
var phone, element;
element = $(this);
element.unmask();
phone = element.val().replace(/\D/g, '');
if (phone.length > 10) {
element.mask("(99) 99999-999?9");
} else {
element.mask("(99) 9999-9999?9");
}
});
这是结果
答案 0 :(得分:1)
你可以向你展示JS包含和HTML吗? 我使用igorescobar / jQuery-Mask-Plugin做了一个手机面膜,也许它可以帮到你:
$(function(){
$("#id_phone").on("change", function(){
var phoneLength = 0;
phoneLength = $(this).val().replace(/[^0-9]/g,"").length;
console.log(phoneLength);
if(phoneLength > 10){
$(this).mask('(00) 00000-0000');
}else{
$(this).mask('(00) 0000-00000');
}
});
});

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.11/jquery.mask.min.js"></script>
<div class="control-group">
<input type="text" name="phone" id="id_phone" value="" />
</div>
&#13;