javascript - Angular:更改输入事件的值

标签 javascript angular

我有文本区域。我尝试将值的宽度限制为 10 个符号。我正在尝试减少 input 事件的值。

<textarea [(ngModel)]="smsMessage" (input)="changeSMSMessage()"></textarea>

changeSMSMessage() {
  this.smsMessage = this.smsMessage.substr(0, 10);
  console.log(this.smsMessage);
}

但是这不起作用。我看到该值在 changeSMSMessage() 方法中被剪切,但在 UI 上我看到值没有更改。
Plunker

当我将事件从 input 更改为 keyup 时,它开始正常工作。第十个字符之后的所有字符都将被删除。

那么,有人可以解释为什么 input 事件不更新 textarea 中的值吗?

最佳答案

您有多种选择:

1 - 使用文本区域的 maxlength="10" 标记:

<textarea [(ngModel)]="smsMessage" maxlength="10"></textarea>

2 - 使用 reactive form controlbuilt-in validator :

3 - 控制输入:

<textarea [(ngModel)]="smsMessage" (change)="changeSMSMessage()"></textarea>


// TS
changeSMSMessage() {
    this.smsMessage = this.smsMessage.length > 10 ? this.smsMessage.substr(0, 10), this.smsMessage;
}

关于javascript - Angular:更改输入事件的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44965696/

相关文章:

javascript - anchor 上的 Preventdefault() 函数随机工作

javascript - 通过 jQuery 检测 flash 点击

Angular2 UrlSearchParams 如何为带括号的相同参数创建具有多个值的 url 查询

angular - SignalR 未在 Angular 服务内订阅

angular - 不支持 Typescript 2.1.5 函数调用

javascript - 如何使用键多个值过滤数组中的数组?

javascript - 将 html 元素包含在另一个元素中

javascript - MobileSafari 不会发回使用 CORS 设置的 Cookie

javascript - Angular2 同步 promise

javascript - 侧边栏高度随内容长度变化