仅在jquery中输入数字

时间:2014-11-19 04:12:02

标签: javascript jquery html css numbers

我有点问题。我只是在输入中输入的字符是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
      }       
    });

我的代码出了什么问题?

我希望能够检测到从数字键盘按下它们的时间以及键盘顶部的数字......

2 个答案:

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