Jquery检测输入焦点

时间:2013-02-01 18:59:59

标签: javascript jquery

我正在创建一个转换网络应用程序来自学Javascript。用户可以使用数字键盘输入数据(基本上是没有操作员的计算器)。我还设置了一个功能来检测按键(1-9),它就像数字键盘一样插入数据。还有清除所有数据的字符'c'

我的问题是我还有一个搜索字段(使用自动完成功能来让用户搜索其他转换)。我不希望用户使用'c'或数字键搜索某些内容,并让它在数字键盘和搜索字段中输入数据。

我的想法是创建一个if语句来确定搜索字段是否处于活动状态(聚焦),以及是否将变量(启用)更改为false,从而禁用键击检测。

我遇到的问题是持有带有focus属性的if语句的函数不起作用。

如果我的漫无目的没有任何意义,希望代码可以解决问题。

以下是具有焦点属性

的if语句
$(document).ready(function(){
    if($(':focus').attr('#searchInput') == 'input')){
        enabled === false;
    }
});

以下是键击检测的代码(省略了冗余部分以节省空间

document.onkeydown = function(event){
    var key = event.charCode || event.keyCode;
    if(enabled === true){
        if(key === 67){
            clearInput(input); //Clears form input (input is my form ID)
        }else if(key === 48){
            writeInput(input, zero); //Zero is a var equaling 0
        }
        ...
    }else{
        return false; //if enabled is false don't detect keystrokes
    }
};

非常感谢任何帮助。如果任何事情没有意义,我将很乐意解释(或编辑帖子。)

1 个答案:

答案 0 :(得分:4)

$(document).keyup(function(e){
   if($('#searchInput').is(':focus')) {
      return ; // search field is focused, ignore other part of function
   }
   var key = e.which;
   // do your code here
});