ngModelChange无法正常工作

时间:2017-03-16 12:18:06

标签: html angular events onchange

手动进行最大长度验证

这里的代码。

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

ts代码

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

代码运行就像预期的那样。但它允许输入超过5个字符。   我还尝试了event.preventdefault()event.stoppropagation。但它没有用。

对此有何想法?所有人都很感激。

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:0)

抱歉,我的错误。有时我们会忘记自己的小逻辑。

//简单的想法

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