我在 Angular 作業,我需要輸入一個只接受數字字符的輸入。我試過給 type="number",它在谷歌瀏覽器中作業得很好,但在 Firefox 中,輸入仍然接受非數字字符。我已經通過 typescript/Javascript 解決了這個問題,但想知道是否有更自然的解決方案。任何幫助,將不勝感激。提前致謝!
uj5u.com熱心網友回復:
在 HTML 中,您必須使用 keypress 方法
<input type="text" (keypress)="keyPressNumbers($event)" formControlName="yourformcontrolname" />
在打字稿中,您必須通過以下方式使用此方法
const keyDecimal : boolean = false;
keyPressNumbers(event) {
var perValue = this.yourformgroupname.get('yourvariablename').value;
var charCode = (event.which) ? event.which : event.keyCode;
if ((perValue.toString().indexOf(".") == -1) || (Number.isInteger(perValue)) || (perValue == null)) {
this.keyDecimal = false;
}
if (charCode< 45 || charCode> 57) {
event.preventDefault();
return false;
}
else {
if (charCode == 46 && !this.keyDecimal) {
this.keyDecimal = true;
}
else if ((charCode == 46 && this.keyDecimal) || (charCode == 47)) {
event.preventDefault();
return false;
}
return true;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314672.html
