【问题标题】:JQuery to allow only numeric input in text box using key codeJQuery 只允许使用键码在文本框中输入数字
【发布时间】:2014-11-16 14:16:28
【问题描述】:

我试图只允许在文本框中输入数字 [0-9]。如果输入了字母或特殊字符,我不希望它显示在文本框中。目前我的代码如下:

$('#TEXTBOX').on("keydown", function(event){
    var keyCode = event.which;
    if(!((keyCode > 47 && keyCode < 58) ||  (keyCode > 95 && keyCode < 106) ||  keyCode == 08)){
        event.preventDefault();
    }
});

我遇到了一些问题。

  1. 这个功能仍然允许特殊字符[即(SHIFT + 1)给出!,(SHIFT + 2)给出@]我不希望这些组合键允许插入文本盒子

  2. 我正在使用幻数。我不想使用幻数和逻辑,但这是我能够使输入验证正常工作的唯一方法....对其他方法有什么建议吗?

我主要关心的是特殊字符的第一个问题。

【问题讨论】:

标签: javascript jquery numeric keycode


【解决方案1】:

为我工作(只允许数字)

            var key = e.charCode || e.keyCode || 0;

            alert(key);

            if (key < 48 || key > 58)
                return false;

【讨论】:

    【解决方案2】:
    $(document).ready(function() {
        $("#txtboxToFilter").keydown(function (e) {
            // Allow: backspace, delete, tab, escape, enter and .
            if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
                 // Allow: Ctrl+A
                (e.keyCode == 65 && e.ctrlKey === true) || 
                 // Allow: home, end, left, right, down, up
                (e.keyCode >= 35 && e.keyCode <= 40)) {
                 // let it happen, don't do anything
                     return;
            }
            // Ensure that it is a number and stop the keypress
            if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
                e.preventDefault();
            }
        });
    });
    

    【讨论】:

    • 请考虑添加一些解释,说明您的代码 sn-p 如何以及为何回答 OP 问题。
    • 根据 ola 的要求,上面的代码拒绝除数字、十进制和我在代码中作为 cmets 提到的键之外的任何其他键组合。我希望这已经足够清楚了。如果对其他任何事情仍有疑问,请随时提出。只需将此 jQuery 文件添加到您的 JSP、pHp 页面,结果就会在那里供您查看。
    【解决方案3】:

    用作

    $('#TEXTBOX').on("keydown", function(event){
        if(event.shiftKey)
             return false;
        var keyCode = event.which;
        if(!((keyCode > 47 && keyCode < 58) ||  (keyCode > 95 && keyCode < 106) ||  keyCode == 08)){
            event.preventDefault();
        }
    });
    

    【讨论】:

      【解决方案4】:
      $('#TEXTBOX').on("keydown", function(event){
          var keyCode = event.which;
          var charCode = (event.charCode) ? event.charCode : ((event.keyCode) ? event.keyCode: ((event.which) ?   evt.which : 0));
          var char = String.fromCharCode(charCode);
          var re = new RegExp("[0-9]", "i");
          if (!re.test(char)) 
          {
               event.preventDefault(); 
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-12
        • 1970-01-01
        • 2011-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-30
        相关资源
        最近更新 更多