2012-02-17 86 views
0

我想要做的是設置一個擴展的jquery函數,它允許文本框中沒有數字。這是我的:只允許擴展jquery數字

$.fn.onlyNumbers = function(evt) { 
    var e = event || evt; // for trans-browser compatibility 
    var charCode = e.which || e.keyCode; 

    if (charCode > 31 && (charCode < 48 || charCode > 57)) 
     return false; 

    return true; 
} 

這是正確的嗎? 如何在擴展函數中調用它並讓它執行相同的操作?

回答

3

我不認爲你瞭解jQuery插件是如何工作的。

您的函數被調用,this是該函數被調用的jQuery對象。在這個函數裏面,你需要註冊一個keypress事件來處理這些字符 - 哦,你不需要任何瀏覽器特定的代碼,因爲jQuery爲你做了這些。

試試這個:

$.fn.onlyNumbers = function() { 
    return this.keypress(function(e) { 
     if (e.which > 31 && (e.which < 48 || e.which > 57)) { 
      e.preventDefault(); 
     } 
    }); 
} 
0

如果有人有什麼鋪貼號碼?檢查keyup上的文本框的值更加簡潔,並將其替換爲該值的數字版本(正則表達式,任何人?)。

+0

聽起來更像是對我的評論。 – kapa 2012-02-17 08:48:31