Jquery формат США номер сталкивается с проблемой - PullRequest
0 голосов
/ 21 мая 2011

Привет. В текстовом поле, когда кто-то вводит телефонный номер, он автоматически преобразует его в (xxx) -xxx-xxxx этот формат, проблема, с которой я сталкиваюсь, заключается в том, что после ввода номера телефона и нажатия клавиши возврата он неудаление после (xxx) -xxx, я не могу найти проблему в коде, плз, помогите мне.

Код запроса

$(document).ready(function()
{
 $('#telephone').keypress(function(e)
 {
  var key = e.charCode || e.keyCode || 0;
  var keychar = String.fromCharCode(key);
  if ( ( ( key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key           <= 40) ) && e.charCode==0 ) || (key >= 48 && key <= 57) && ($('#telephone').val().length < 14) )
  {
   var tlength = $('#telephone').val().length;
   var tvalue = $('#telephone').val();

   if(tlength == 3)
   {
    var tvalue = '(' + $('#telephone').val() + ')'
    $('#telephone').val(tvalue);
   }

   var tlength = $('#telephone').val().length;
   var tvalue = $('#telephone').val();
   if(tlength == 5)
   {
    var tvalue = $('#telephone').val() + '-';
    $('#telephone').val(tvalue);
   }

   var tlength = $('#telephone').val().length;
   var tvalue = $('#telephone').val();
   if( tlength == 9 )
   {
    var tvalue = $('#telephone').val() + '-';
    $('#telephone').val(tvalue);
   }
   return;
  } 
  else
  {
   e.preventDefault();
  }
});
});

1 Ответ

0 голосов
/ 21 мая 2011

Я думаю, что проблема в этой строке ....

if ( ( ( key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key           <= 40) ) && e.charCode==0 ) || (key >= 48 && key <= 57) && ($('#telephone').val().length < 14) )

Попробуйте изменить строку и заменить ее следующим образом:

if ( ( ( key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 && key           <= 40) ) && key == 0 ) || (key >= 48 && key <= 57) && ($('#telephone').val().length < 14) )
...