Keydown事件行为不如预期

时间:2015-03-08 02:08:00

标签: javascript tabs focus addeventlistener keydown

我正在使用事件监听器监视何时按下button 'c'以激活选项卡和文本输入,以便用户可以开始输入。

我得到的行为是:

1。)当正确的选项卡已经激活时:文本输入正确聚焦。

2.。)当其他选项卡处于活动状态时:正确激活所需选项卡但不输入文本输入。如果按" c"再一次,行为(1.)发生了。

有谁知道我是如何让这个工作的,所以当' c'按下选项卡(如果需要),文本输入也会被聚焦。

我尝试将两个函数顺序完成,但我仍然得到相同的行为。

我的代码如下:

            window.addEventListener (
                'keydown',
                function (event) {
                    if (!($(document.activeElement).is(":input"))){
                        event.preventDefault();
                        switch (event.keyCode){
                            //Key C
                            case 67:
                                $('#tabs a[href="#comments"]').tab('show');
                                $("#comment-box").focus();
                                break;
                        }

                    }

                },
                false
        );

1 个答案:

答案 0 :(得分:0)

为防止输入“C”,必须包含event.preventDefault();

window.addEventListener('keydown', function(event){
  if(!($(document.activeElement).is(":input"))){
    switch (event.keyCode) {
      //Key C
      case 67:
        event.preventDefault(); // Prevents typing letter C
        $('#tabs a[href="#comments"]').tab('show');
        $("#comment-box").focus();
        break;
    }
  }
},false);

注意:OP不幸编辑了问题以更正代码。他的原始修订版不包含preventDefault声明。