簡體   English   中英

僅在jQuery中輸入數字

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM