2012-07-02 73 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; 
});