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)"/>
javascript
html
onkeyup
angular
AlikElzin-kilaka
fuente
fuente
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:
Puede rastrear esto aquí mientras no existan documentos oficiales, pero deberían estar disponibles pronto.
fuente
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
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.
fuente
Este archivo le da algunas pistas más, por ejemplo, keydown.up no funciona, necesita keydown.arrowup:
https://github.com/angular/angular/blob/630d93150a58581a0d474ebf1befb5d09b6813c5/modules/angular2/src/platform/browser/browser_adapter.dart
fuente
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/
fuente
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 + ' | '; } }
fuente
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.
fuente
El
keyCode
es obsoleto puede utilizarkey
la propiedad en elKeyboardEvent
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' } }
fuente
Uno como con eventos
(keydown)="$event.keyCode != 32 ? $event:$event.preventDefault()"
fuente