在输入框内输入时忽略按键
Ignore key presses when typing inside of inputs
我有以下指令可以捕获某些按键:
angular.module('app').directive('keyPress', function ($document) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
$document.bind('keyup', function (e) {
if (e.keyCode == 83){ // S key
element.focus();
};
if (e.keyCode == 27){ // ESC key
element.blur();
};
});
}
}
});
搜索框元素然后使用它通过 S
和 ESC
键聚焦和聚焦:
<input type="text" class="form-control" placeholder="Search" key-press>
不幸的是,当在包含此搜索输入的页面上键入其他输入时,也会检测到按键并且搜索框会聚焦。有没有办法只在 不是 聚焦于不同的输入时捕捉按键?
获取 event.target
您可以访问焦点元素,因此您可以检查焦点元素是否为输入。
$document.bind('keyup', function (event) {
if(event.target.type === 'input') {
return;
}
if (event.keyCode == 83){ // S key
element.focus();
};
if (event.keyCode == 27){ // ESC key
element.blur();
};
});
我有以下指令可以捕获某些按键:
angular.module('app').directive('keyPress', function ($document) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
$document.bind('keyup', function (e) {
if (e.keyCode == 83){ // S key
element.focus();
};
if (e.keyCode == 27){ // ESC key
element.blur();
};
});
}
}
});
搜索框元素然后使用它通过 S
和 ESC
键聚焦和聚焦:
<input type="text" class="form-control" placeholder="Search" key-press>
不幸的是,当在包含此搜索输入的页面上键入其他输入时,也会检测到按键并且搜索框会聚焦。有没有办法只在 不是 聚焦于不同的输入时捕捉按键?
获取 event.target
您可以访问焦点元素,因此您可以检查焦点元素是否为输入。
$document.bind('keyup', function (event) {
if(event.target.type === 'input') {
return;
}
if (event.keyCode == 83){ // S key
element.focus();
};
if (event.keyCode == 27){ // ESC key
element.blur();
};
});