我在 ionic 框架 + Angular 中开发了该应用程序,对于某些功能,我使用输入绑定了 (keyup.enter) 事件。但不知怎的,它在 iOS 设备最新版本中不起作用。但可以在旧版本的 iOS 设备(例如(OS 12.5.4))上正常工作。
请帮我解决这个问题。
简单源代码
<ion-input placeholder="Lot Code" [(ngModel)]="txtLotCode" (keyup.enter)="searchItemLotWS()" type="text"> </ion-input>
参考图片
我已将 (keyup.enter) 事件替换为 (keydown.enter),它对我有用, 现在 “返回” 按钮在最新的 iOS (ios 14) 中对我有用。
谢谢。
问题是,从 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。
尽管这已经有两年了,但我在 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" />
也许这对任何人都有帮助。
你尝试了什么?您能为我们展示一下代码吗?我尝试了下面的示例并且它有效。
对于 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();
}