【发布时间】:2021-06-21 13:35:29
【问题描述】:
我在文本区域内的选项卡中找不到我的问题的解决方案。每次我使用点击按钮时,它都会跳转到另一个文本区域。现在我遇到了一个解决方案,但是,它是用 Javascript 编写的(我发现另一个是用 jQuery 编写的) - 但不幸的是我找不到 Typescript 的解决方案。
这是我现在得到的(用js写的):
document.getElementById('textbox').addEventListener('keydown', function (e) {
if (e.key == 'Tab') {
e.preventDefault();
var start = this.selectionStart;
var end = this.selectionEnd;
this.value = this.value.substring(0, start) + '\t' + this.value.substring(end);
this.selectionStart = this.selectionEnd = start + 1;
}
});
<textarea pInputTextarea tabindex="0" (keydown)="handleKeydown($event)" onFocus="this.select();" (input)="setOkayButtonMode()"
[rows]="10" [cols]="75" maxlength="255">
</textarea>
我真的找不到任何东西,而 Stackoverflow 是我的问题的最后一个停靠点。也许你们中的一个可以帮助我:)
非常感谢前面!!
好极了 朱利安
【问题讨论】:
-
这能回答你的问题吗? Use tab to indent in textarea
-
嘿哈伦,这是我从那里得到代码 sn-p 的。但不幸的是它没有回答我的问题:(
-
Angular 使用 @HostListener 代替
addEventListener。尽可能避免访问 TS 中的 DOM 元素通常被认为是“最佳实践”。这就是你要找的意思吗? -
@daddygames 感谢您的回答-您能给我举一些 HostListener 的例子吗?有没有要添加的模块?
-
我想到了一种没有 HostListener 的更简单的方法。希望我的回答对您有所帮助。
标签: javascript angular typescript tabs textarea