2017-02-02 2 views
0

я получил реактивную форму, как такугловой 2 - команда нажмите клавишу ввода, чтобы отправить форму

@Component({ 
    template: ` 
    <form [formGroup]="formGroup" (ngSubmit)="onSubmit()" novalidate> 
    <textarea name="detail" id="detail" formControlName="detail"></textarea> 
    <div *ngIf="formGroup.controls['detail'].dirty && formGroup.controls['detail'].invalid">This is required</div> 
    <button type="submit">Post</button> 
    </form> 
    ` 
}) 
export class CreateDiscussionComponent { 

    formGroup: FormGroup; 
    submitted: boolean = false; 
    constructor() { 
    this.formGroup = new FormGroup({ 
     detail: new FormControl('', [Validators.required, Validators.minLength(2) ]), 
     type : new FormControl('discussion'), 
    }); 
    } 
    onSubmit(): void { 
    this.submitted = true; 
    } 
} 

, что делать, так что я могу отправить форму на пресс-CMD + Enter

ответ

3

Это должно работать:

<form (keydown.meta.Enter)="handleFormSubmit($event)"> 
</form> 

Вы можете отфильтровать свое событие клавиатуры по требуемой комбинации клавиш

+0

не работает .... –

+0

это 'meta' вместо' control' –

0

попробовать это решение:

@HostListener('document:keydown', ['$event']) 
onKey(ev:KeyboardEvent) { 
    // do something meaningful with it 
    // check ev.key == command + enter 
    console.log(`The user just pressed ${ev.key}!`); 
    // call submit form 
    if (ev.ctrlKey && ev.keyCode == 13) { // cmd+enter 
    this.onSubmit(); 
    } 
} 
Смежные вопросы