【问题标题】:jQuery event.keyCode NOT detecting alphanumericsjQuery event.keyCode 未检测到字母数字
【发布时间】:2013-01-06 23:29:18
【问题描述】:

我编写了一个脚本来检测用户单击了哪个键并根据该键(如果它是字母数字)采取行动,但到目前为止它没有工作并且没有错误。

 jQuery(document).ready(function() { 
    $("#my_field").keydown(function(event) { 
        var additional = new Array(8,9,13,27,35,36,37,38,39,46); 
        var numbers = new Array(48,49,50,51,52,53,54,55,56,57,96,97,98,99,100,101,102,103,104,105,144); 
        var letters = new Array(65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90); 
        var AllowedKeyCode = 
            (jQuery.inArray(event.keyCode, additional) >= 0) 
                || 
            (jQuery.inArray(event.keyCode, letters) >= 0) 
                || 
            ((!event.shiftKey) && (jQuery.inArray(event.keyCode, numbers) >= 0)) 
                || 
            ((event.ctrlKey) && (event.keyCode == 65 || event.keyCode == 67 || event.keyCode == 86)); 
        if (AllowedKeyCode === false) {event.preventDefault();} 
    }); 
});

非常感谢任何帮助。

【问题讨论】:

    标签: javascript jquery keyboard jquery-events


    【解决方案1】:

    Javascript 中数组的理想语法是:

    var additional = [8,9,13,27,35,36,37,38,39,46];
    

    相对于:

    var additional = new Array(8,9,13,27,35,36,37,38,39,46);
    

    问题可能是您没有退货操作。在您发布的内容中很难看到。

    尝试改变:

    event.preventDefault();
    

    return false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-07-26
      • 1970-01-01
      • 2012-05-29
      相关资源
      最近更新 更多