Lo siguiente funciona muy bien cuando se suelta la tecla Intro . ¿Qué otras opciones están disponibles para keyup
además keyup.enter
?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Lo siguiente funciona muy bien cuando se suelta la tecla Intro . ¿Qué otras opciones están disponibles para keyup
además keyup.enter
?
<input #inputstring (keyup.enter)="doSomething(inputstring.value)"/>
Respuestas:
Estas son las opciones actualmente documentadas en las pruebas: ctrl, shift, enter y escape. Estos son algunos ejemplos válidos de asociaciones de teclas:
keydown.control.shift.enter
keydown.control.esc
Puede rastrear esto aquí mientras no existan documentos oficiales, pero deberían estar disponibles pronto.
Estaba buscando una forma de vincularme a múltiples eventos clave, específicamente Shift + Enter, pero no pude encontrar ningún buen recurso en línea. Pero después de registrar el enlace keydown
<textarea (keydown)=onKeydownEvent($event)></textarea>
Descubrí que el evento de teclado proporcionaba toda la información que necesitaba para detectar Shift + Enter. Resulta que $event
devuelve un KeyboardEvent bastante detallado .
onKeydownEvent(event: KeyboardEvent): void {
if (event.keyCode === 13 && event.shiftKey) {
// On 'Shift+Enter' do this...
}
}
También hay indicadores para CtrlKey, AltKey y MetaKey (es decir, la tecla de comando en Mac).
No es necesario el KeyEventsPlugin, JQuery o un enlace JS puro.
Este archivo le da algunas pistas más, por ejemplo, keydown.up no funciona, necesita keydown.arrowup:
Hoy he tenido el mismo problema.
Estos están mal documentados, existe un problema abierto.
Algunos para keyup , como el espacio:
<input (keyup.space)="doSomething()">
<input (keyup.spacebar)="doSomething()">
Algunos para keydown
(pueden funcionar también para keyup):
<input (keydown.enter)="...">
<input (keydown.a)="...">
<input (keydown.esc)="...">
<input (keydown.alt)="...">
<input (keydown.shift.esc)="...">
<input (keydown.shift.arrowdown)="...">
<input (keydown.f4)="...">
Todos los anteriores son de los siguientes enlaces:
https://github.com/angular/angular/issues/18870
https://github.com/angular/angular/issues/8273
https://github.com/angular/angular/blob/master/packages/platform- navegador / src / dom / events / key_events.ts
https://alligator.io/angular/binding-keyup-keydown-events/
puedes agregar un evento keyup como este
template: `
<input (keyup)="onKey($event)">
<p>{{values}}</p>
`
en Componente, codifique algunos como a continuación
export class KeyUpComponent_v1 {
values = '';
onKey(event:any) { // without type info
this.values += event.target.value + ' | ';
}
}
Si el evento es keyup fuera del CTRL, SHIFT, ENTERy ESCel soporte, sólo tiene que utilizar la guía de @Md Ayub Ali Sarker. El único pseudoevento de keyup mencionado aquí en los documentos angulares https://angular.io/docs/ts/latest/guide/user-input.html es ENTERclave. Aún no hay pseudoeventos de teclado para teclas numéricas y alfabetos.
El keyCode
es obsoleto puede utilizar key
la propiedad en elKeyboardEvent
<textarea (keydown)=onKeydownEvent($event)></textarea>
Mecanografiado:
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'
}
}
Uno como con eventos
(keydown)="$event.keyCode != 32 ? $event:$event.preventDefault()"