None
None

Reputation: 9247

How do I allow only numbers and special characters in my input?

I have this:

  <input style="text-align: right;font-size: 12px;" class='input' (keyup.enter)="sumTotal($event)" type="text"
      [ngModel]="field.value" (focusin)="focusin()" (focusout)="format()" (keyup.enter)="format()"
      (ngModelChange)="onlyNumbers($event);field.value = $event;sumTotal($event);" [disabled]="disabled">

In my ts i have this: I want numbers and special characters.

  onlyNumbers(letter) { if (letter.toUpperCase() !== letter.toLowerCase()) { return; } else { this.field.value = letter; } }

But it still can enter letters. Any suggestion?

Upvotes: 0

Views: 1557

Answers (2)

Bansi29
Bansi29

Reputation: 1079

You can try this way

 onkeypress="return (event.charCode == 8 && event.charCode == 0) ? null : event.charCode >= 48 && event.charCode <= 57"

other way set pattern

 pattern="[0-9]"

Upvotes: 0

jsadev.net
jsadev.net

Reputation: 2590

Using event.preventDefault() by checking if isNaN returns false and if its not a . or , could be a solution for you:

function numbersonly(e){
  if(isNaN(e.key) && e.key !== '.' && e.key !== ',') e.preventDefault();
}
<input type="text" onkeypress="numbersonly(event)" />

Upvotes: 3

Related Questions