【发布时间】:2019-12-15 01:58:08
【问题描述】:
我正在 ionic4 中创建一个应用程序,我有一个功能,用户可以输入唯一的整数 (0-9),所以我想限制任何其他字符,即字母、点以及所有字符。
我试图限制使用以下指令
@HostListener('input', ['$event']) onInputChange(event) {
this.inputElement = this._el.nativeElement.getElementsByTagName('input')[0];
const initalValue = this.inputElement.value;
this.inputElement.value = initalValue.replace(/[^0-9]*/g, '');
if (initalValue !== this.inputElement.value) {
event.stopPropagation();
}
}
它正在正确更新 ngModel,但在输入字段中仍然可以看到无效字符。
我尝试了以下另一个选项
html
<ion-input type="text" placeholder="Enter number"
[(ngModel)]="userCount"
name="userCount"
(ionInput)="countChange($event)">
</ion-input>
Usercount: {{userCount}}
打字稿
countChange(event) {
event.target.value = event.target.value.replace(/[^0-9]*/g, '');
}
HTML 中的打印值正确,没有无效字符,但在输入中显示无效字符。
如果我在输入中输入 5+,ngModel 中的值显示为 5,但输入字段显示为 5+
当我输入 5++ 然后再次输入 5 时,输入字段现在显示 55。
如何将输入限制为仅接受整数值 [0-9]
【问题讨论】:
-
嘿Divyesh。只需创建一个类似下面的指令即可回答提供并将其应用到代码中的任何位置。
-
我已经更新了答案,请立即查看
-
还是不行
-
你检查过这个吗? -
是的,它仍然在接受 + 。 ? !一切
标签: typescript ionic-framework angular7 ionic4