Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ionic-3 ion-input maxlength attribute not working

I have tried to add ion-input for maxlength , max attribute but it's not working as per expectation.

<ion-input type="number" placeholder="*" maxlength="1"></ion-input>

<ion-input type="number" placeholder="*" max="1"></ion-input>

Anyone knows the solution for the same?

Thanks

like image 998
core114 Avatar asked Jan 29 '18 05:01

core114


3 Answers

According to this post: maxlength ignored for input type="number" in Chrome

Maxlength doesn't work on input type="number"

One alternative is suggested here: https://github.com/ionic-team/ionic/issues/7072 where dilhan119 suggests using type="tel"

A robust solution is to use a form validator, which will prevent form submission (and can show the user an error): https://www.joshmorony.com/advanced-forms-validation-in-ionic-2/

like image 169
DavidX Avatar answered Sep 21 '22 03:09

DavidX


I found my way out you can use below my code. great this about it is you can keep input type number so android will show keyboard of your desire

put this code in your form builder

phone: ['', [Validators.required, this.isValidNumber.bind(this)]]

in your ts file add below method

isValidNumber(fieldControl: FormControl) {
    if(this.formBuilderGroup) {
      return fieldControl.value.toString().length < 10 ? null : {
        NotEqual: true
      };
    }
  }

in above code change formBuilderGroup to whatever your form builder group name it is. change 10 to whatever you prefer length

like image 28
nirmal Avatar answered Sep 17 '22 03:09

nirmal


HTML:
    <ion-textarea [(ngModel)]=“text” (ionChange)="textareaMaxLengthValidation()"></ion-textarea>
    <ion-input type="text" [(ngModel)]=“text” (ionChange)="textareaMaxLengthValidation()"></ion-input>


    TS:
    textareaMaxLengthValidation() {
        if (text.length > 50) {
       text= text.slice(0, 50);
        }
like image 42
Karthick Chandra Sekar Avatar answered Sep 20 '22 03:09

Karthick Chandra Sekar