Есть несколько вопросов с ответами, относящимися к моей проблеме, но, к сожалению, ни один не помог мне.
Я должен обнаружить нажатие клавиши ввода на клавиатуре Android и изменить фокус с текущего matInput на следующий matInput.
Я пробовал keyup.enter
, keydown
и keypress
, но никто не работал для меня.Я реализовал директивный подход, но не запускаю метод при отладке приложения на устройстве Android.Хотя, это вызывает метод в браузере.
Вот, что я использую.
HTML:
<mat-form-field class="ib-input-container-width">
<input matInput data-dependency="lastName" (keypress)="onChange($event.keyCode)" (keyup.enter)="handleNext('lastName')" [formControl]="form.get('FirstName')" type="text" >
</mat-form-field>
<mat-form-field class="ib-input-container-width" >
<input #lastName id="lastName" matInput [formControl]="form.get('LastName')" type="text">
TS:
handleNext(elementId){
let nextElement = document.getElementById(elementId);
console.log(nextElement);
nextElement.focus();
}
onChange(event){
console.log(event.keycode);
}
PS: Я работаю с прогрессивным веб-приложением, использующим Cordova.
Обновление
Я пробовал решение из https://stackoverflow.com/a/28103608/3081929 Но ng-change также не работает.