如果焦点在文本字段和输入上,则启用/禁用按键
enable/disable keystrokes if focus is on textfield and input
我在一个简单的公文包页面上使用onepagescroll。我想添加空格键功能,并在插件中找到了要修改的代码。
现在它随着空格键滚动,但是在页面上测试了一个联系人表单后,我注意到当焦点放在文本区域或输入上时,与插件相关的键都不起作用。
如果我删除了一个键的大小写,文本区域会按预期工作,我可以用空格向上/向下/缩进,所以问题就在这个代码中:
_keydownHandler = function(e) {
var tag = e.target.tagName.toLowerCase();
if (!_hasClass(body, "disabled-onepage-scroll")) {
switch(e.which) {
case 38:
if (tag != 'input' && tag != 'textarea') moveUp(el)
break;
case 40:
if (tag != 'input' && tag != 'textarea') moveDown(el)
break;
case 32:
if (tag != 'input' && tag != 'textarea') moveDown(el)
break;
default: return;
}
}
return false;
}
if(settings.keyboard == true) {
document.onkeydown = _keydownHandler;
}
return false;
}
我一直在努力解决这个问题,但我对js的了解有限,代码似乎很有意义。是哪里出错了,还是我需要写一个else语句?
刚刚发现,将发布答案,以防其他人遇到这种情况。
if (!_hasClass(body, "disabled-onepage-scroll")) {
switch(e.which) {
case 38:
if (tag != 'input' && tag != 'textarea') moveUp(el)
break;
case 40:
if (tag != 'input' && tag != 'textarea') moveDown(el)
break;
case 32:
if (tag != 'input' && tag != 'textarea') moveDown(el)
break;
default: return;
}
return true; //add this
}
return false;
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 单击时将焦点更改为元素
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 在IE9中的输入字段中输入焦点最近按钮
- 如何在 API 调用后和 if 语句中启用提交按钮
- 语义ui如何使用javascript启用或禁用下拉列表
- Javascript游戏输入失去焦点
- ExtJS网格单元格编辑器,防止焦点松动问题
- 检查元素是如何获得焦点的
- IE6在启用/禁用文本字段上闪烁
- 传单中如何在更改基层时启用/禁用覆盖层
- angularjs移除焦点上的活动类并添加到下一个项目
- Don'不允许将焦点集中在自动完成的选择上
- 根据字段的值启用按钮
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 如果焦点在文本字段和输入上,则启用/禁用按键
- 如何同时启用这两个输入元素成为焦点
- 在密码字段具有焦点后启用表单登录按钮
- 如何将焦点设置在页面上的滑格控件上以启用键盘导航?