ngModelChange不能正常工作

问题描述:

我在做最大长度验证手动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()\ –

您可以简单地使用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

阅读我在问题 –

对不起我的错误。有时候我们会为了小逻辑而忘记我们的自我。

//简单的思考

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