我正在创建一个转换网络应用程序来自学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
}
};
非常感谢任何帮助。如果任何事情没有意义,我将很乐意解释(或编辑帖子。)
答案 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
});