代码之家  ›  专栏  ›  技术社区  ›  JohnIdol

用于多种格式的jQuery zip掩蔽

  •  11
  • JohnIdol  · 技术社区  · 14 年前

    我有一个掩蔽zip字段的要求,以便它允许经典的5位数zip(XXXXX)或5+4格式(XXXXX-XXXX)。

    我可以这样说:

    $('#myZipField').mask("?99999-9999");
    

    这是迄今为止我想到的最好的-我可以扩展它来自动插入破折号,当他们插入第6位数字,但这将是一个有趣的删除行为的问题(我可以阻止他们删除破折号,但它会修补修补程序等等,这成了一场噩梦):

    $.mask.definitions['~']='[-]';
    $("#myZipField").mask("?99999~9999", {placeholder:""});
    

    4 回复  |  直到 14 年前
        1
  •  10
  •   Konrad Viltersten    12 年前

    您不必使用其他插件。只需移动问号,以代替:

    $('#myZipField').mask("?99999-9999");
    

    $('#myZipField').mask("99999?-9999");
    

    毕竟,不是整个字符串都是可选的,只是 - 继续前进。

        2
  •  1
  •   Piotr Salaciak    8 年前

    这个邮政编码实际上很简单,但是当您需要处理更复杂的格式时,下面是如何使用插件(从 demo page ):

    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);
    
        3
  •  0
  •   Java Drinker    14 年前

    http://www.meiocodigo.com/projects/meiomask/

    所以我觉得你不用自己动手

        4
  •  0
  •   Vildan Bina    4 年前

    当您使用jQuery Inputmask插件并希望使用4位或5位的邮政编码值时,您应该使用:

    $('#myZipField').inputmask("9999[9]");

        5
  •  -1
  •   jasonpgignac    14 年前