onkeyup ничего не делать для некоторых символов - PullRequest
1 голос
/ 27 декабря 2011

Ну, я сделал этот код 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);
}

Приведенный выше код не позволяет мне использовать backspace .. Любая помощь?

Ответы [ 3 ]

2 голосов
/ 27 декабря 2011
$(".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);
    }
});
0 голосов
/ 27 декабря 2011

Использовать регулярное выражение: 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-9 - это 0,1,2,3,4,5,6,7,8,9

\. - это . Мы должны покинуть точку, используя \, поскольку точка означает совпадение с чем угодно.

, is ,

0 голосов
/ 27 декабря 2011

jQuery «всегда» выдаст вам код ключа в e.which. Вы можете безопасно использовать e.which != 8 в своем операторе if внутри обработчика ключей. то есть ..

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