[英]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.