【问题标题】:How to check whether an array contains an element [duplicate]如何检查数组是否包含元素[重复]
【发布时间】:2013-02-20 08:08:15
【问题描述】:

我想限制可以按下的键。

$('.txtComments').keydown(function (event) {
  var keys = new Array();
  keys[0] = "8";
  keys[1] = "46";
  keys[2] = "37"
  keys[3] = "39"

  if(!(....)) //Check whether the keyCode is either of 8, 46, 37, or 39. 
  {
     event.preventDefault();  
  }
});

感谢您的帮助

【问题讨论】:

  • var keys = [8,46,37,39];,那么你可以使用$.inArrayevent.which
  • 尝试使用$.inArray
  • 做个好人。停止投票。谢谢。

标签: javascript jquery


【解决方案1】:

这里最简单(也是最快)的方法是使用对象作为地图:

   var keys = {};
   keys[8] = true;
   ...

   if (!keys[event.which]) {
     ...

请注意,为了更好的兼容性,我建议使用event.which 而不是键码。

【讨论】:

    【解决方案2】:

    所以有很多方法可以实现这一点:

    只需硬编码:

    var keyCode = event.which;
    
    if (keyCode != 8 && keyCode != 46 ...)
    

    或检查一个数组:

    var keys = [8, 46, ...];
    if (keys.indexOf(keyCode) < 0)
    

    或 jQuery 等价物:

    if ($.inArray(keyCode, keys) < 0)
    

    或检查一个对象:

    var keys = { 8: 1, 46: 1, ... }
    if (! (keyCode in keys) )  // or if (!keys[keyCode])
    

    或开关:

    switch (keyCode) {
        case 8: case 46: ...
            // do nothing
            break;
        default:
            event.preventDefault();
    }
    

    【讨论】:

      【解决方案3】:

      jQuery 提供了实用方法jQuery.inArray() 来检查数组是否包含值。

      【讨论】:

        【解决方案4】:

        if(!keys.in_array(event.keyCode));

        并将您的 keydown 更改为 keypress

        <script type="text/javascript">
        // Benoit Asselin - http://www.ab-d.fr
        Array.prototype.in_array = function(p_val) {
            for(var i = 0, l = this.length; i < l; i++) {
                if(this[i] == p_val) {
                    return true;
                }
            }
            return false;
        }
        </script>
        

        【讨论】:

          【解决方案5】:

          你可以使用:-

             var keys = [];
              keys[8] = keys[4] = keys[37] = keys[39] = true;
          
          if(keys[keyval]){
          
          }
          

          【讨论】:

            猜你喜欢
            • 2021-12-14
            • 1970-01-01
            • 1970-01-01
            • 2016-10-13
            • 1970-01-01
            • 1970-01-01
            • 2017-11-24
            • 2021-05-02
            • 1970-01-01
            相关资源
            最近更新 更多