问候世界各地的开发人员,
我试图深入了解如何在Angular 6中使用“ min”和“ max”指令,我知道在Angular 2版本之前不支持的功能更改,但是现在我使用的是版本6,因此它应该不会造成麻烦。
但是,我期望使用“最大”验证程序阻止用户键入超过9999的代码,而不是这种行为,我只是触发了验证程序,而不是停止用户,允许他们键入无限数。 / p>
如何通过输入数字类型来实现这种经典的“最大长度”行为?
编辑
我正在使用PrimeNG组件
<input class="ss" type="text" [formControl]="numPolizaCtrl" [(ngModel)]="conceptoForm.numPoliza" pInputText pKeyFilter="pint" placeholder="Nº póliza">
<label *ngIf="numPolizaCtrl.invalid" [ngClass] = "'error'" > Too much numbers. </label>
numPolizaCtrl = new FormControl("", [Validators.max(9999999999), Validators.min(0)]);
我想阻止用户键入超过“ x”个字符,与maxLength指令具有相同的行为,但使用类型为“ number”的输入。
谢谢大家。
答案 0 :(得分:2)
您不能在maxlength
和input:number
中使用min
,也不能使用以下解决方案:
在您的HTML模板中
max
以及您的组件
<input id="txtNumber" placeholder="4 character only" (keydown)="isNumberKey($event)"
type="text" name="txtNumber" maxlength="4">
答案 1 :(得分:2)
尝试使用正则表达式:
HTML:
<input class="ss" type="text" [formControl]="numPolizaCtrl" [(ngModel)]="conceptoForm.numPoliza" pInputText pKeyFilter="pint" placeholder="Nº póliza"(keydown)=validateNumber($event)>
结束组件:
validateNumber(event: KeyboardEvent) {
let regEx = new RegExp('^[0-9]*$');
if(regEx.test(event.key) || event.key=="Backspace" )
return true;
else
return false;
}