Нажмите клавишу Enter на угловом шаговом

#angular #typescript

Вопрос:

Я в своем приложении при нажатии клавиши Enter хочу запустить форму Stepper 1 на втором шаге. Я не могу запустить форму stepper 1 на втором шаге при нажатии клавиши enter. Мой вопрос — Как получить доступ к ключу EventListner или Keydown для доступа к следующему шагу в stepper? Я новичок в angular, может ли кто-нибудь помочь мне в этом году.

   lt;mat-step [stepControl]="firstFormGroup"gt;  lt;form [formGroup]="firstFormGroup"gt;  lt;ng-template matStepLabelgt;Step 1lt;/ng-templategt;  lt;div class="row"gt;  lt;div class="col-xl-1"gt;lt;/divgt;  lt;div class="col-xl-6"gt;  lt;div class="row"gt;  lt;div class="row"gt;  lt;div class="col-xl-12"gt;  lt;div class="form-group"gt;  lt;label for="inputFirstName"gt;Full Name lt;span style="color:red;"gt;*lt;/spangt;  lt;/labelgt;  lt;input type="text" class="form-control" onkeypress="return (event.charCode gt; 64 amp;amp; event.charCode lt; 91) || (event.charCode gt; 96 amp;amp; event.charCode lt; 123) || (event.charCode==32)" name="fname" id="inputFirstName" formControlName="firstNameCtrl"  (change)="ChangeStudentNamePop()"  [ngClass]="{'form-control-danger': firstFormGroup.controls.firstNameCtrl.invalid amp;amp; (firstFormGroup.controls.firstNameCtrl.dirty || firstFormGroup.controls.firstNameCtrl.touched)}"  placeholder="Full Name" autocomplete="given-name" autofocus requiredgt;  lt;/divgt;  lt;/divgt;  lt;/divgt;  lt;div class="row"gt;  lt;div class="col-xl-6"gt;  lt;div class="form-group"gt;  lt;label for="inputFatherName"gt;Father's Name lt;span style="color:red;"gt;*lt;/spangt;  lt;/labelgt;  lt;input type="text" class="form-control" onkeypress="return (event.charCode gt; 64 amp;amp; event.charCode lt; 91) || (event.charCode gt; 96 amp;amp; event.charCode lt; 123) || (event.charCode==32)" name="fatherName" id="inputFatherName" formControlName="fatherNameCtrl"  [ngClass]="{'form-control-danger': firstFormGroup.controls.fatherNameCtrl.invalid amp;amp; (firstFormGroup.controls.fatherNameCtrl.dirty || firstFormGroup.controls.fatherNameCtrl.touched)}"  placeholder="Father's Name" autocomplete="father-name" autofocus requiredgt;  lt;/divgt;  lt;/divgt;  lt;div class="col-xl-4" id="top_help"gt;  lt;p style="font-size: 150%"gt;lt;bgt;Need Help?lt;/bgt;lt;/pgt;  lt;img class="videoimg" src="https://dte.admissiondesk.org/api/front_assets/img/PLAY.png" data-toggle="modal" data-width="640" data-height="360" data-target="#myModal" data-video-fullscreen="" (click)="videoPopup(1)"gt;  lt;brgt;  lt;h5gt;Email Us on lt;a style="color:#0054ff"gt;infolt;/agt;lt;/h5gt;  lt;/divgt;  lt;/divgt;  lt;brgt;  lt;brgt;  lt;div class="slideControl"gt;  lt;div class="SlideshowRight"gt;  lt;a class="slideControlButton" *ngIf="firstFormGroup.valid == true" (click)="radioChange();"gt;  lt;mat-icon gt;arrow_forwardlt;/mat-icongt;  lt;/agt;  lt;/divgt;  lt;/divgt;  lt;/formgt;  lt;/mat-stepgt;   //Second Stepper :  lt;mat-step [stepControl]="secondFormGroup"gt;  lt;form [formGroup]="secondFormGroup"gt;  //Code year.  lt;mat-stepgt;    
   radioChange(event) {  if(event){  if(event=='Male'){  this.initials_gender = "Mr.";  }else if(event=='Female'){  this.initials_gender = "Ms.";  }else if(event=='Transgender'){  this.initials_gender = "";  }  this.secondFormGroup.patchValue({  genderCtrl : event  })  }  this.stepper.next();  }   

Ответ №1:

Вы можете использовать @HostListener

 @HostListener('window:keyup', ['$event'])  keyEvent(event: KeyboardEvent) {  if (event.keyCode === LEFT_ARROW) {  // write your code  }  if (event.keyCode === RIGHT_ARROW) {  // write your code  }  if (event.keyCode === ENTER) {  // write your code  }  }  

Комментарии:

1. Как реализовать hostinger в html?

2. Не нужно ничего делать в вашем html-файле, просто добавьте @HostListener приведенный выше код в файл component.ts и импортируйте его. Это захват всех событий клавиатуры