2011-12-27 67 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