(keyup.enter) 事件在 iOS 键盘中不起作用

问题描述 投票:0回答:4

我在 ionic 框架 + Angular 中开发了该应用程序,对于某些功能,我使用输入绑定了 (keyup.enter) 事件。但不知怎的,它在 iOS 设备最新版本中不起作用。但可以在旧版本的 iOS 设备(例如(OS 12.5.4))上正常工作。

请帮我解决这个问题。

离子信息 enter image description here

简单源代码

<ion-input placeholder="Lot Code" [(ngModel)]="txtLotCode" (keyup.enter)="searchItemLotWS()" type="text"> </ion-input>

参考图片

enter image description here

ios angular cordova ionic-framework ionic3
4个回答
3
投票

我已将 (keyup.enter) 事件替换为 (keydown.enter),它对我有用, 现在 “返回” 按钮在最新的 iOS (ios 14) 中对我有用。

谢谢。


3
投票

问题是,从 iOS 版本 13 开始,iPhone 键盘 ⇧(Shift/Capitalize) 按钮会自动激活,因此按下的按键会变成 Shift+Enter。

我不建议使用

(keydown.enter)
,因为如果用户按住回车键,它将继续执行代码。

相反,您可以使用 autocapitalize 属性:

<ion-input **autocapitalize="none"** placeholder="Lot Code" [(ngModel)]="txtLotCode" (keyup.enter)="searchItemLotWS()" type="text"> </ion-input>

由于您使用的是 ionic 框架,因此您可以使用与 Enter 和 Shift+Enter 配合使用的 <ion-searchbar (search)="searchItemLotWS()"></ion-searchbar>,而不是使用

ion-input


0
投票

尽管这已经有两年了,但我在 Angular 14.3 应用程序和 iOS 17.5 客户端(iPad 和 iPhone)上也遇到了同样的问题。

就我而言,它可以不听

keyup.enter
而是听任何
keyup
并检查打字稿中的密钥。

所以我从一个看起来像的代码开始

<input class="form-control" [(ngModel)]="searchQuery" (keyup.enter)="search()" [disabled]="loading" />

对于这样的事情

public keyup(e: KeyboardEvent) {
    if (e.key == 'Enter') {
      this.search();
    }
  }
<input class="form-control" [(ngModel)]="searchQuery" (keyup)="keyup($event)" [disabled]="loading" />

也许这对任何人都有帮助。


-1
投票

你尝试了什么?您能为我们展示一下代码吗?我尝试了下面的示例并且它有效。

对于 html

    <ion-input #Field1 (keyup)="gotoNextField(Field2)" </ion-input>
    <ion-input #Field2 (keyup)="gotoNextField(Field3)" </ion-input>
    <ion-input #Field3 (keyup)="gotoNextField(Field4)" </ion-input>
    <ion-input #Field4 (keyup)="finishFunction()" </ion-input>

对于ts

gotoNextField(nextElement)
  nextElement.setFocus();
}
© www.soinside.com 2019 - 2024. All rights reserved.