2012-07-02 2 views
0

Я использую следующую функцию для проверки текстового поля телефонного номера. Он работает нормально. Эта функция позволяет вводить только цифры, но если я вхожу в текстовое поле, записи выглядят как . Но мне нужны записи, похожие на 111-111-1111 111111.Проверка номера телефона в jQuery

Как я могу это сделать?

$('input[id*=Phone]').live('keypress',function(evt){ 
    var phValidateid=$(this).attr("id"); 
    if (event.keyCode > 47 && event.keyCode < 58) { 
     return true; 
    } 
    return false; 
}); 
+0

в качестве альтернативы вы можете попробовать этот [плагин] (http://digitalbush.com/projects/masked-input-plugin/) – undefined

+0

Можно ли обойтись без использования плагина? – User

+0

да, возможно, почему нет. – undefined

ответ

4

вы можете попробовать что-то вроде этого:

$('input').on('keyup',function(evt){ 
    var len = this.value.length; 
    if (len == 3 || len == 7 || len == 11) { 
     $(this).val(this.value + "-"); 
    } 

    else if (len == 15) { 
     $(this).val(this.value + " "); 
    }   
}); 

http://jsfiddle.net/Ys79C/2/

+0

jsfiddle не открывается – User

0

попробовать

return String.fromCharCode(event.keyCode).search(/[\d\-]/) > -1; // true if number or dash; false otherwise 

или если вы хотите, чтобы проверить значение отверстия входного

$('input[id*=Phone]').live('keypress',function(evt){ 
    return $(this).val().search(/^\d{3}\-\d{3}\-\d{4} \d{6}$/) > -1; 
}); 
Смежные вопросы