(нажатие клавиши) событие в ионном 4 не запускается - PullRequest
1 голос
/ 08 июля 2019

По этой ссылке https://ionicframework.com/docs/api/input#events ionic поддерживает нажатие клавиши событие, которое нормально работает в браузере, но на мобильном устройстве не вызывает

html

<ion-item>
  <ion-label>Default Label</ion-label>
  <ion-input (keypress)="test($event)"></ion-input>
</ion-item>

ts

test(event){

console.log(event);
 e.preventDefault();
}

вышеприведенный код отлично работает на ионной подаче, а не на мобильном устройстве

В соответствии с этим https://developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event нажатие клавиши ограниченоя не понимаю

События, которые я пытался: нажатие клавиши, нажатие клавиши, keyup, ionblur, ionChange, ввод, и т. д. Либо он не работает, либо не работает, либо предотвращает ошибку

Ответы [ 3 ]

0 голосов
/ 08 июля 2019

Передайте $ event вашему обработчику событий. Событие $ является событием DOM KeyboardEvent.

<input type=text (keypress)="eventHandler($event)">

eventHandler(event) {
   console.log(event, event.keyCode, event.keyIdentifier);
} 

Если вы знаете, какое свойство KeyboardEvent вам нужно, вы можете передать его в обработчик событий:

<input type=text (keypress)="eventHandler($event.keyCode)">

eventHandler(keyCode) {...}
0 голосов
/ 08 июля 2019

Используйте атрибут readonly с событием ionInput из ответа @Gilsidoo или другим событием в качестве keyPress, которое может работать в вашем случае.

<ion-item>
  <ion-label>Default Label</ion-label>
  <ion-input readonly (ionInput)="test($event)"></ion-input>
</ion-item>

РЕДАКТИРОВАТЬ : Я полагаю, что onInput с readonly не будет работать, попробуйте использовать keyup.

0 голосов
/ 08 июля 2019

По вашей собственной первой ссылке, я думаю, вы ищете событие ionInput Emitted when a keyboard input ocurred.:

<ion-item>
  <ion-label>Default Label</ion-label>
  <ion-input (ionInput)="test($event)"></ion-input>
</ion-item>
...