【问题标题】:ngModelChange is not working properlyngModelChange 无法正常工作
【发布时间】:2017-03-16 12:18:06
【问题描述】:

我正在手动进行最大长度验证

这里是代码。

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

ts 代码

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

运行的代码符合预期。但它允许输入超过 5 个字符。 我也试过event.preventdefault() 和event.stoppropagation。但它不起作用。

对此有任何想法吗?一切都值得赞赏。

【问题讨论】:

  • 你console.log(obj); 看看它记录了什么吗?
  • 你想达到什么目的?您不想在输入中输入超过 5 个字符?
  • 在 console.log() 中获取我的模型对象值\
  • @Kinduser 。我知道具有最大长度属性的文本框。但最大长度值来自数据库
  • 但是您在条件中输入了5。它应该是动态/灵活的吗?

标签: html angular events onchange


【解决方案1】:

您可以简单地使用maxlenght 属性来防止用户输入更多的字母。

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

如果您需要动态设置最大长度,您可以简单地将其绑定到控制器中的变量。

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

【讨论】:

  • 对不起。这不是我想要的
  • 请更准确。你想达到什么目的?
  • 阅读问题下我所有的cmets
  • 我阅读了您的评论,但您没有阅读我回答的最后一句话。在这里,我编辑了答案,以提供我之前所说的示例。
  • 好的,它在IE浏览器中工作吗?我已经试过这个人了:)
猜你喜欢
  • 2021-03-07
  • 2016-12-01
  • 1970-01-01
  • 2016-09-01
  • 2023-02-09
  • 2012-07-11
  • 2018-04-08
  • 2017-04-20
  • 2018-10-02
相关资源
最近更新 更多