我有文本区域。我尝试将值的宽度限制为 10 个符号。我正在尝试削减价值input
事件。
<textarea [(ngModel)]="smsMessage" (input)="changeSMSMessage()"></textarea>
changeSMSMessage() {
this.smsMessage = this.smsMessage.substr(0, 10);
console.log(this.smsMessage);
}
但这不起作用。我看到价值被削减了changeSMSMessage()
方法,但在 UI 上我看到值没有改变。
Plunker https://plnkr.co/edit/wDR0QF5fDwEw4KLVkAn5?p=preview
当我将事件从input
to keyup
,它开始正常工作。第十个字符之后的所有字符都将被删除。
那么,有人可以解释为什么吗input
事件不更新值textarea
?
您有多种选择:
1 - 使用maxlength="10"
文本区域的标签:
<textarea [(ngModel)]="smsMessage" maxlength="10"></textarea>
2 - 使用反应形式控制 https://angular.io/guide/reactive-forms with a 内置验证器 https://angular.io/guide/form-validation :
3 - 控制输入:
<textarea [(ngModel)]="smsMessage" (change)="changeSMSMessage()"></textarea>
// TS
changeSMSMessage() {
this.smsMessage = this.smsMessage.length > 10 ? this.smsMessage.substr(0, 10), this.smsMessage;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)