onkeyup对某些char没有任何作用

时间:2011-12-27 15:17:47

标签: jquery keypress keyup

我已经制作了这个jquery代码

$(document).ready(function(){
    $(".graduate").keyup(function(e){
        if(e.keyCode!=8 && (e.keyCode<48 && e.keyCode>57)){
        //some code here
        };
    });
});

我想输入忽略写除整数之外的任何东西..

我发现了这个:但我不知道如何将其转换为jquery代码.. http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onkeypress

function noNumbers(e)
{
var keynum;
var keychar;
var numcheck;

if(window.event) // IE
    {
    keynum = e.keyCode;
    }
else if(e.which) // Netscape/Firefox/Opera
    {
    keynum = e.which;
    }
keychar = String.fromCharCode(keynum);
numcheck = /\d/;
return numcheck.test(keychar);
}

上面的代码不允许我使用退格.. 有什么帮助吗?

3 个答案:

答案 0 :(得分:2)

$(".graduate")    
.bind('keydown', function(e) {
    var
    editingKeys = {
        '8'   : 'delete',
        '9'   : 'tab',
        '46'  : 'canc',
        '37'  : 'leftarrow',
        '39'  : 'rightarrow',
    },

    key = e.which || e.keycode,
    keynum = (key > 47) && (key < 58),
    keypad = (key > 95) && (key < 106);

    if (!keynum && !keypad) {
        return (key in editingKeys);
    }
});

答案 1 :(得分:0)

jQuery将“始终”在e.which中为您提供密钥代码。您可以在keyup处理程序内的if语句中安全地使用e.which != 8。即..

$(".graduate").keyup(function(e){
    if(e.which!=8 && (e.keyCode<48 && e.keyCode>57)){
        //some code here
    }
});

答案 2 :(得分:0)

使用regexp:http://jsfiddle.net/DSvkS/

$(document).ready(function(){
    $(".graduate").bind('keyup', function(event) {
        this.value = this.value.replace(/\D/g, "");
    });
});

\D表示0-9以外的任何内容。

或支持., http://jsfiddle.net/DSvkS/4/

$(document).ready(function(){
    $(".graduate").bind('keyup', function(event) {
        this.value = this.value.replace(/[^0-9\.,]/g, "");
    });
});

[^...]表示除...之外的任何内容:

0-90,1,2,3,4,5,6,7,8,9

\..我们必须使用\来逃避点,因为点表示匹配任何内容。

,,