Phone mask with jQuery and Masked Input Plugin

前端 未结 15 1512
夕颜
夕颜 2020-11-28 06:54

I have a problem masking a phone input with jQuery and Masked Input Plugin.

There are 2 possible formats:

  1. (XX)XXXX-XXXX
  2. (
15条回答
  •  情书的邮戳
    2020-11-28 07:34

    As alternative

        function FormatPhone(tt,e){
      //console.log(e.which);
      var t = $(tt);
      var v1 = t.val();
      var k = e.which;
      if(k!=8 && v1.length===18){
        e.preventDefault();
      }
      var q = String.fromCharCode((96 <= k && k <= 105)? k-48 : k);
      if (((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) && e.keyCode!=46 && e.keyCode!=37 && e.keyCode!=8 && e.keyCode!=39) {
     e.preventDefault();
      }
      else{
        setTimeout(function(){
          var v = t.val();
          var l = v.length;
          //console.log(l);
          if(k!=8){
            if(l<4){
              t.val('+7 ');
            }
            else if(l===4){
              if(isNaN(q)){
                t.val('+7 (');
              }
              else{
                t.val('+7 ('+q);
              }
            }
            else if(l===7){
              t.val(v+')');
            }
            else if(l===9){
              t.val(v1+' '+q);
            }
            else if(l===13||l===16){
              t.val(v1+'-'+q);
            }
            else if(l>18){
              v=v.substr(0,18);
              t.val(v);
            }
            }
            else{
              if(l<4){
                t.val('+7 ');
              }
            }
        },100);
      }
    }
    

提交回复
热议问题