我有点问题。我只是在输入中输入的字符是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
}
});
我的代码出了什么问题?
我希望能够检测到从数字键盘按下它们的时间以及键盘顶部的数字......
答案 0 :(得分:1)
你的病情不可能
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)) {
使用或(|| thing)
另外,如果你想做你的东西&#39;当满足上述条件时,你应该在条件为真时做这些事情,而不是当它不是真的时。
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
// do stuff here
} else {
// do nothing
event.preventDefault();
}
答案 1 :(得分:0)
您的条件逻辑永远不会通过。例如,您要求keyCode为&lt; = 57 AND&gt; = 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();
}
});