【问题标题】:Jquery US number format facing the problemjquery美国数字格式面临的问题
【发布时间】:2011-05-21 10:22:13
【问题描述】:

嗨,在文本框中,当有人输入电话号码时,它会自动将其转换为 (xxx)-xxx-xxxx 这种格式,我面临的问题是在我输入电话号码并按退格键后它不是在 (xxx)-xxx 之后删除,我无法在代码中找到问题,请帮助我。

jquery 代码

$(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();
  }
});
});

【问题讨论】:

  • 问题是浏览器特有的???
  • 是的,麻烦只在 Firefox 中

标签: jquery jquery-plugins jquery-validate


【解决方案1】:

我认为这行的问题....

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) )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多