【发布时间】:2017-08-21 09:24:56
【问题描述】:
我使用 keydown 事件编写了一个函数,让输入只允许数字、'-' 和 BackSpace 键。当我在 ionic serve 或 iOS 中测试时,它起作用了。但是当我在 Android 设备上测试时,它不起作用,输入字段将允许输入所有字符。 当我使用console.log(事件)时,它总是返回key="Unidentified", keyCode = 229。
环境:Ionic 3、Node v6.11、NPM 3.10、Android 5.1.1
我不知道如何解决这个问题。
.ts 文件
import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public navCtrl: NavController) {
}
isValidNumber(event) {
//console.log(event);
return /\d|-|Backspace/.test(event.key);
}
}
.html 文件
<ion-header>
<ion-navbar>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-item>
<ion-input type="text" (keydown)="isValidNumber($event)"></ion-input>
</ion-item>
</ion-content>
【问题讨论】:
-
你为什么不用
type="number"? -
@SwapnilPatwa 我想输入一个像'0001234'这样的字符串值,所以如果type = number,它将转换为1234。无论如何,我也想允许输入'-'字符。我更新了我的答案。
标签: android angular ionic-framework ionic2 ionic3