我在Angular 1.x上发现了一些项目,用户可以通过按Enter键将焦点移到下一个控件上。
'use strict';
app.directive('setTabEnter', function () {
var includeTags = ['INPUT', 'SELECT'];
function link(scope, element, attrs) {
element.on('keydown', function (e) {
if (e.keyCode == 13 && includeTags.indexOf(e.target.tagName) != -1) {
var focusable = element[0].querySelectorAll('input,select,button,textarea');
var currentIndex = Array.prototype.indexOf.call(focusable, e.target)
var nextIndex = currentIndex == focusable.length - 1 ? 0 : currentIndex + 1;
if (nextIndex >= 0 && nextIndex < focusable.length)
focusable[nextIndex].focus();
return false;
}
});
}
return {
restrict: 'A',
link: link
};
});
但这对Angular 2不起作用。我如何在Ingular 2中设置对下一个控件的焦点?
import { Directive, ElementRef, HostListener, Input, Renderer } from '@angular/core';
@Directive({
selector: '[onReturn]'
})
export class OnReturnDirective {
private el: ElementRef;
@Input() onReturn: string;
constructor(private _el: ElementRef,public renderer: Renderer) {
this.el = this._el;
}
@HostListener('keydown', ['$event']) onKeyDown(e:any) {
if ((e.which == 13 || e.keyCode == 13)) {
e.preventDefault();
let control:any;
control = e.srcElement.nextElementSibling;
while (true){
if (control) {
if ((!control.hidden) &&
(control.nodeName == 'INPUT' ||
control.nodeName == 'SELECT' ||
control.nodeName == 'BUTTON' ||
control.nodeName == 'TEXTAREA'))
{
control.focus();
return;
}else{
control = control.nextElementSibling;
}
}
else {
console.log('close keyboard');
return;
}
}
}
}
}
问题内容: 最好的方法是,在单击表单内部的Enter时,将焦点转到下一个输入,而不是使用angularjs提交表单。 我有一个包含许多字段的表单,客户习惯于按Enter键移至下一个输入(来自桌面应用程序)。当用户点击Enter时,angularjs保存表单。我喜欢改变这个。可能吗 ? 问题答案: 我建议制定一个自定义指令。这样的事情。我还没有测试。 这样的事情应该起作用。您可能不得不周到一些东西。
问题内容: 摘要: 在我的桌面应用程序中,我加载了一个Jtable,并且在编辑模式下(如果我按Tab键)我需要将单元格的焦点放在下一个单元格上。 问题: 当我编辑单元格的值,然后按Tab时,焦点丢失。我在网上做了一些搜索,发现发生这种情况是因为在每个Tab上按下Jtable都会重新加载自身。 可能的解决 方案我想到的一个解决方案是获取正在使用的单元格的索引,将其与全局变量相同,然后在Tab键上按一
我有一个windows窗体,我需要当用户按Enter时将焦点设置为下一个控件。任何想法如何实现这一点(不使用关键新闻事件)
让我介绍一下我的问题的场景。我希望在JTable中呈现数据库表的内容。使用这个JTable,我应该能够插入新行、删除行和更新现有行字段的内容。 第一个需要的行为是,当单元格获得焦点时,如果它是可编辑的,它直接进入编辑模式,如果它是字母数字内容,它的所有内容都被选中。(文字、数字、日期等) 下一个需要的行为是键作为键工作,即按键焦点必须向前(从左到右)或向后转移到下一个单元格(如果这是可编辑的,则进
问题内容: 我想在Linux(Ubuntu Linux 9.10)上编写一个程序(使用python),该程序将跟踪我每秒产生的每秒钟按键次数。这包括普通字母键,以及控制/ Shift /空格/等。 是否有某种方法可以挂接到X,以便我可以说“按下键时调用此函数?”。由于我希望在正常工作时在后台运行此功能,因此该函数调用必须能够知道所有程序的所有按键。我想它有点像键盘记录器。 这只是一个私人的事情,所
在C#windows应用程序中,要导航窗体的所有控件(使用Enter键),我使用以下代码: 任何人请帮帮我。