2012-02-17 84 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