我有一个输入文本:
<input type="number" class="form-control" [ngClass]="config.inputClass"
[(ngModel)]="field.data" step="0.01" (keypress)="checkDecimalNumbers($event, field)"
(blur)="validateDecimalNumber(field)" [readonly]="checkReadOnly(field)" />
我需要知道要输入一个角色的位置,因为我只需要允许角色&#39; - &#39;在位置0我已经查看了所有事件对象,但我还没有找到任何有用的东西。这是打字稿功能,但它允许在任何位置输入减号。
public checkDecimalNumbers = function (ev: KeyboardEvent, field: any) {
const key = ev.keyCode || ev.charCode;
const keyStr = String.fromCharCode(key);
if ((keyStr === '.' && field.data.toString().indexOf(keyStr) < 0) || (keyStr === '-' && field.data.toString().indexOf(keyStr) < 0)) {
return;
} else if (isNaN(Number(keyStr))) {
ev.preventDefault();
}
}
答案 0 :(得分:0)
您可以检查输入的字符,如果不是&#39; - &#39;则删除,但同时添加保留第一个,然后用该值替换值。如下所示:
<强> HTML 强>:
<input ... [(ngModel)]="input" (keyup)="format()" >
<强>打字稿强>
format(){
let value = this.input;
this.input = value.substr(0, 1) + value.substr(1).replace('-','');
}
<强> DEMO 强>