2017-03-16 66 views
0

我在做最大長度驗證手動ngModelChange不能正常工作

這裏的代碼。

<input class="inputsyle" [(ngModel)]="Modelvalue" 
(ngModelChange)="variantvaluevalidation(Modelvalue)" type="text" /> 

TS碼

variantvaluevalidation(obj) { 
     if (obj.length > 5) { 
      return false; 
     } 
} 

運行像什麼期望的代碼。但它允許輸入超過5個字符。我也試過event.preventdefault()event.stoppropagation。但它不起作用。

對此有何想法?都讚賞。

+0

你有沒有'的console.log(OBJ);'來看看它的日誌? – echonax

+0

你想實現什麼?您不想在輸入內輸入超過5個字符? –

+0

am在console.log()\ –

回答

1

您可以簡單地使用maxlenght屬性來防止用戶輸入更多字母。

<input class="inputsyle" [(ngModel)]="Modelvalue" 
(ngModelChange)="variantvaluevalidation(Modelvalue)" maxlength='5' type="text" /> 

如果您需要動態設置maxlength,您可以簡單地將它綁定到控制器中的變量。

<input class="inputsyle" [(ngModel)]="Modelvalue" 
    (ngModelChange)="variantvaluevalidation(Modelvalue)" [attr.maxlength]='maxlength' type="text" /> 
+0

對不起。這不是我想要 –

+0

請更精確。你想達到什麼目的? – YounesM

+0

閱讀我在問題 –

0

對不起我的錯誤。有時候我們會爲了小邏輯而忘記我們的自我。

//簡單的思考

variantvaluevalidation(object) { 
     if (object.length > 5) {   
      let data = object.substring(0, 5);//n of number     
      this.Modelvalue = data;   
      return false; 
     } 
    }