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
。但它不起作用。
对此有何想法?都赞赏。
答
您可以简单地使用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" />
答
对不起我的错误。有时候我们会为了小逻辑而忘记我们的自我。
//简单的思考
variantvaluevalidation(object) {
if (object.length > 5) {
let data = object.substring(0, 5);//n of number
this.Modelvalue = data;
return false;
}
}
你有没有'的console.log(OBJ);'来看看它的日志? – echonax
你想实现什么?您不想在输入内输入超过5个字符? –
am在console.log()\ –