gpt4 book ai didi

javascript - 将焦点移至 Enter 键上的下一个控件

转载 作者:太空狗 更新时间:2023-10-29 13:23:29 25 4
gpt4 key购买 nike

我在 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。如何在 Angular 2 中将焦点设置在 Enter 按键的下一个控件上?

最佳答案

import { Directive, ElementRef, HostListener, Input } from'@angular/core';
@Directive({
selector: '[onReturn]'
})
export class OnReturnDirective {
private el: ElementRef;
@Input() onReturn: string;
constructor(private _el: ElementRef) {
this.el = this._el;
}
@HostListener('keydown', ['$event']) onKeyDown(e) {
if ((e.which == 13 || e.keyCode == 13)) {
e.preventDefault();
if (e.srcElement.nextElementSibling) {
e.srcElement.nextElementSibling.focus();
}
else{
console.log('close keyboard');
}
return;
}

}

}

希望对您有所帮助!

关于javascript - 将焦点移至 Enter 键上的下一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41283650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com