2015-08-22 42 views
45

进入密钥被释放时,下面的工作很好。 keyupkeyup.enter之外还有什么其他选择可供选择?Angular2中的(keyup)有哪些选项?

<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/> 
+0

也许这可能会给你一个提示https://github.com/angular/angular/issues/523,但它已经很老了。 –

回答

43

这些是目前在测试中记录的选项:ctrl,shift,enter和escape。这些键绑定的一些有效的例子:

keydown.control.shift.enter 
keydown.control.esc 

虽然没有官方的文档存在,你可以跟踪这个here,但他们应该很快就会出炉。

+3

哇,这个答案是在Angular处于第20个alpha时给出的,它今天仍然有效。 –

+0

相关文档https://angular.io/guide/user-input#key-event-filtering-with-keyenter –

2

您可以添加keyup事件这样

template: ` 
    <input (keyup)="onKey($event)"> 
    <p>{{values}}</p> 
` 

在组件中,一些像下面的代码

export class KeyUpComponent_v1 { 
    values = ''; 

    onKey(event:any) { // without type info 
    this.values += event.target.value + ' | '; 
    } 
} 
+0

这不适用于数字。如果我在输入字段中键入数字,那么keyup事件不会被触发。我们可以为此做些什么? – monica

1

我正在寻找一种方法来绑定多个关键事件 - 特别是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绑定。