#jquery #jquery-plugins #jquery-validate
#jquery #jquery-плагины #jquery-validate
Вопрос:
Привет, в текстовом поле, когда кто-то вводит номер телефона, он автоматически преобразует его в (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 amp;amp; key <= 40) ) amp;amp; e.charCode==0 ) || (key >= 48 amp;amp; key <= 57) amp;amp; ($('#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. Проблема связана с конкретным браузером???
2. Да, проблемы только в Firefox
Ответ №1:
Я думаю, что проблема в этой строке….
if ( ( ( key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 amp;amp; key <= 40) ) amp;amp; e.charCode==0 ) || (key >= 48 amp;amp; key <= 57) amp;amp; ($('#telephone').val().length < 14) )
Попробуйте изменить строку и заменить ее на эту:
if ( ( ( key == 8 || key == 9 || key == 46 || key == 35 || key == 36 || (key >= 37 amp;amp; key <= 40) ) amp;amp; key == 0 ) || (key >= 48 amp;amp; key <= 57) amp;amp; ($('#telephone').val().length < 14) )