当输入键被释放时,以下效果很好。 除了keyup
之外,keyup.enter
还有哪些其他选项?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
答案 0 :(得分:49)
这些是目前测试中记录的选项:ctrl,shift,enter和escape。这些是键绑定的一些有效示例:
keydown.control.shift.enter
keydown.control.esc
您可以在没有官方文档的情况下跟踪此here,但它们很快就会出来。
答案 1 :(得分:13)
此文件为您提供了更多提示,例如,keydown.up不起作用您需要keydown.arrowup:
答案 2 :(得分:9)
我正在寻找一种绑定多个关键事件的方法 - 特别是Shift + Enter - 但无法在线找到任何好的资源。但是在记录了keydown绑定后
<textarea (keydown)=onKeydownEvent($event)></textarea>
我发现键盘事件提供了检测Shift + Enter所需的所有信息。事实证明,$event
会返回相当详细的KeyboardEvent。
onKeydownEvent(event: KeyboardEvent): void {
if (event.keyCode === 13 && event.shiftKey) {
// On 'Shift+Enter' do this...
}
}
还有CtrlKey,AltKey和MetaKey的标志(即Mac上的Command键)。
不需要KeyEventsPlugin,JQuery或纯JS绑定。
答案 3 :(得分:6)
你可以像这样添加keyup事件
template: `
<input (keyup)="onKey($event)">
<p>{{values}}</p>
`
在Component中,代码如下所示
export class KeyUpComponent_v1 {
values = '';
onKey(event:any) { // without type info
this.values += event.target.value + ' | ';
}
}
答案 4 :(得分:1)
如果你的keyup事件在 CTRL , SHIFT , ENTER 和 ESC 括号之外,只需使用@ Md Ayub Ali Sarker的指南。此角度文档https://angular.io/docs/ts/latest/guide/user-input.html中提到的唯一键盘伪事件是 ENTER 键。数字键和字母表还没有键盘伪事件。
答案 5 :(得分:1)
今天遇到了同样的问题。
这些文献文献不多,存在一个未解决的问题。
一些 keyup ,例如空格:
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">
一些用于 keydown
(也可能适用于键盘输入):
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">
以上所有内容均来自以下链接:
https://github.com/angular/angular/issues/18870
https://github.com/angular/angular/issues/8273
https://github.com/angular/angular/blob/master/packages/platform-browser/src/dom/events/key_events.ts
https://alligator.io/angular/binding-keyup-keydown-events/
答案 6 :(得分:0)
对于Angular 7可以使用keyup。 https://angular.io/guide/user-input
答案 7 :(得分:0)
不建议使用keyCode
,您可以在key
中使用KeyboardEvent
属性
<textarea (keydown)=onKeydownEvent($event)></textarea>
打字稿:
onKeydownEvent($event: KeyboardEvent){
// you can use the following for checkig enter key pressed or not
if ($event.key === 'Enter') {
console.log($event.key); // Enter
}
if ($event.key === 'Enter' && event.shiftKey) {
//This is 'Shift+Enter'
}
}
答案 8 :(得分:0)
与事件相似的人
Settings > Develop Android Apps > Enable ADB Debugging