我无法弄清楚如何根据值长度更改输入模板掩码。
例如:我有两个车号模板' 99-999-99'和' 999-99-999'。我需要根据值长度更改输入掩码。
如果值长度为7或更小,则模板必须为99-999-99'。如果值的长度大于7,那么太阳穴必须是999-99-999'。
我的代码:
$("#carnum").keyup(()=>{
var masks = ['99-999-99', '999-99-999'];
var value = $('#carnum').val().replace(/-/g, '');
value.length <= 7 ? -1 : $('#carnum').mask(masks[1]);
})
$("#carnum").mask('99-999-99');
这是fiddle。
谢谢!
答案 0 :(得分:2)
在再次屏蔽相同的元素之前,最好将其取消屏蔽, 这是动态或有条件地更改掩码的示例代码参考
var changeMask=0;
$("#carnum").keyup(()=>{
var masks = ['99-999-99', '999-99-999'];
var value = $('#carnum').val().replace(/-/g, '').replace(/_/g,'');
if(value.length==7){
changeMask++;
}
if(changeMask>1&&value.length>=7) {
$('#carnum').unmask(masks[0]);
$('#carnum').mask(masks[1]);
var arrayValue=value.split("");
$("#carnum").val("");
for(var index=0;index<arrayValue.length;index++){
$("#carnum").val(function(i, val) {
return val + arrayValue[index];
}).trigger('input');
}
}
})
$("#carnum").mask('99-999-99');
<强> Working fiddle here 强>