Validation 仅允许类型为text的离子输入中的数字
我需要进行以下输入,以便它只接受数字:Validation 仅允许类型为text的离子输入中的数字,validation,input,ionic3,angular5,Validation,Input,Ionic3,Angular5,我需要进行以下输入,以便它只接受数字: <ion-input formControlName="quantity"></ion-input> 我知道这可以通过type=number来实现,但由于其他原因,我只能使用type文本。是否可以使用文本类型执行此操作?还有,我如何验证最小值和最大值呢?也许你可以通过TypeScript文件中的按键事件来实现,并且只授权数字… 在侦听器中,当事件不是您的组件.html中的数字时,您可以阻止默认事件、停止其传播并返回false:
<ion-input formControlName="quantity"></ion-input>
我知道这可以通过type=number来实现,但由于其他原因,我只能使用type文本。是否可以使用文本类型执行此操作?还有,我如何验证最小值和最大值呢?也许你可以通过TypeScript文件中的按键事件来实现,并且只授权数字…
在侦听器中,当事件不是您的
组件.html中的数字时,您可以阻止默认事件、停止其传播并返回false:
`<ion-input (ionInput)="onInput($event)" maxlength="3" ></ion-input>`
检测到输入时,只需从值中删掉任何不是数字的内容。可以通过以下方法精确完成:
在.ts文件中:
numericOnly(event): boolean {
let patter = /^([0-9])$/;
let result = pattern.test(event.key);
return result;
}
<ion-input
class="input"
inputmode="numeric"
type="number"
(keypress)="numericOnly($event)"
>
</ion-input>
在.html文件中:
numericOnly(event): boolean {
let patter = /^([0-9])$/;
let result = pattern.test(event.key);
return result;
}
<ion-input
class="input"
inputmode="numeric"
type="number"
(keypress)="numericOnly($event)"
>
</ion-input>
如果我理解正确,您愿意使用Angular/任何其他基于JS的限制来限制用户输入,对吗?正确,在这种情况下是Ionic。非常感谢!为我工作!