仅允许数字扩展jquery

时间:2012-02-17 01:47:44

标签: 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;
}

这是对的吗? 当它是一个扩展函数并且让它做同样的事情时我如何调用它?

2 个答案:

答案 0 :(得分: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();
        }
    });
}

答案 1 :(得分:0)

如果有人粘贴数字怎么办?检查keyup上文本框的值,并将其替换为该值的数字版本(正则表达式,任何人?)。