2012-07-02 77 views
0

我使用以下函数来验证电话号码文本框。它工作正常。此功能仅允许输入数字,但如果输入文本框,则条目看起来像。但我需要的条目看起来像111-111-1111 111111jquery中的电话号码验证

我该怎么做?

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