2011-12-27 44 views
1

那么我有此jQuery代码的onkeyup一些焦炭

$(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); 
} 

上面的代码不会允许我使用退格.. 任何帮助吗?

+0

另一种方法:检查输入设定的值,如果不是数字(正则表达式,isNaN,等等。),在输入字符串恢复到以前的内容。 – Alfabravo 2011-12-27 15:20:29

+2

@Alfabravo这个怎么样? http://stackoverflow.com/questions/891696/jquery-what-is-the-best-way-to-restrict-number-only-input-for-textboxes-all – 2011-12-27 15:23:02

+0

不要问我,试试吧,告诉我们!! :D(不知道这个插件,我在几年前手工做过这样的验证:P) – Alfabravo 2011-12-27 15:25:44

回答

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); 
    } 
}); 
+0

一些问题,与代码.. 不起作用:( – 2011-12-27 15:33:35

+0

对不起,只是改变与keydown = keyup)(看看http://jsfiddle.net/7nGkU/) – fcalderan 2011-12-27 15:38:05

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 
    } 
}); 
+0

这不是问题.. 问题是我必须直到'//有些代码忽略所有的事情excpet integer数字 - 返回false不起作用 – 2011-12-27 15:38:00

0

使用正则表达式: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

\..我们要逃避使用\点为圆点表示比赛任何东西。

,,

+0

这个代码很清楚,但它的报复.. – 2011-12-27 15:35:56

+0

问题是,当我把一些字符输入框.. 我看到它和消失.. 这并不好 – 2011-12-27 15:39:41