[英]Input numbers only in jquery
我有一個問題。 我僅在輸入中輸入的字符為NUMBERS時才嘗試執行我的任務。
這是目前的代碼。
$(".jq-sales, .jq-variablecosts, .jq-fixedcosts, .jq-additional-sales, .jq-sales-units, .jq-variablecosts-units, .jq-totalsold-units").keypress(function(event) {
if (event.keyCode >= 48 && event.keyCode <= 57 && event.keyCode >= 96 && event.keyCode <= 105) {
event.preventDefault();
}
else {
// DO my stuff
}
});
我的代碼有什么問題?
我希望能夠檢測到何時從數字鍵盤和鍵盤頂部的數字按下它們。
你的情況是不可能的
if (event.keyCode >= 48 && event.keyCode <= 57 && event.keyCode >= 96 && event.keyCode <= 105) {
數字不能介於48和57之間,也不能介於96和105之間
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
使用或(||事物)
另外,如果要在滿足上述條件時執行“自己的工作”,則應在條件為真時執行操作,而不是在條件不成立時執行操作。
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
// do stuff here
} else {
// do nothing
event.preventDefault();
}
您的條件邏輯將永遠不會過去。 例如,您要求keyCode為<= 57 AND> = 96。
此外,解決該問題后,您將防止數字鍵擊並在非數字上執行代碼。
因此,您需要編寫以下內容:
$(".jq-sales, .jq-variablecosts, .jq-fixedcosts, .jq-additional-sales, .jq-sales-units, .jq-variablecosts-units, .jq-totalsold-units").keypress(function(event) {
if (
( event.keyCode >= 48 && event.keyCode <= 57 ) ||
( event.keyCode >= 96 && event.keyCode <= 105 )
)
{
// DO my stuff
}
else {
// Ignore non-numeric input
event.preventDefault();
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.