我有一个屏蔽zip字段的要求,因此它允许使用经典的5位数字zip(XXXXX)或5 + 4格式(XXXXX-XXXX)。
我可以这样:
$('#myZipField').mask("?99999-9999");
但是复杂性来自这样一个事实:如果用户只输入5位数字,则不应显示破折号。
这是我到目前为止所提出的最好的 - 我可以将它扩展为在插入第6位时自动插入短划线但是这个问题在删除时会很有趣(我可以阻止他们删除短划线但是它会修补补丁等等,它变成了一场噩梦):
$.mask.definitions['~']='[-]';
$("#myZipField").mask("?99999~9999", {placeholder:""});
是否有开箱即用的方式或我必须自己滚动?
您不必使用其他插件。只需移动问号,即可代替:
$('#myZipField').mask("?99999-9999");
你应该使用:
$('#myZipField').mask("99999?-9999");
毕竟,它不是整个字符串是可选的,只是 -
然后继续
如果您已经使用jQuery,可能有数百个掩码等插件,例如:
http://www.meiocodigo.com/projects/meiomask/
所以我认为你不得不自己动手
这个邮政编码实际上很简单,但是当你有一个更复杂的格式来处理时,这就是它如何通过插件解决(来自 演示页面):
var options = {onKeyPress: function(cep, e, field, options){
var masks = ['00000-000', '0-00-00-00'];
mask = (cep.length>7) ? masks[1] : masks[0];
$('.crazy_cep').mask(mask, options);
}};
$('.crazy_cep').mask('00000-000', options);
为什么不让字段透明,并在其后面有一个文本对象,表单为浅灰色?所以他们在背景中看到了####### - ####,然后对它进行装配,以便字母在输入时消失。那时,它表明如果他们想要加上额外的四个,他们应该进入破折号,对吧?那么,如果它们陷入困境并键入6个数字,您可以直接将脚本设置为自动插入连字符?