Angular2使textarea按Enter而不添加新行

Posted

技术标签:

【中文标题】Angular2使textarea按Enter而不添加新行【英文标题】:Angular2 make textarea press enter without new line added 【发布时间】:2016-08-17 19:02:15 【问题描述】:

我有一些文本输入的文本区域。 当用户完成输入时,我让他们使用 [Enter] 通过

来确认文本
<textarea #msgInput (keyup.enter)="confirmText(msgInput.value)" >
</textarea>

虽然我可以成功获取confirmText() 中的文本。 在 textarea 的值上创建一个换行符。

如何正确地将换行符放到 textarea 中? 我知道在编写 js 时存在一些方法,如 return 0 和 preventDefault() 但我不知道如何在 Angular2 打字稿中做到这一点。

【问题讨论】:

【参考方案1】:

在表达式中添加;false 以抑制默认行为:

<textarea #msgInput (keydown.enter)="confirmText(msgInput.value);false" >

您还必须使用keydown 而不是keyup,因为取消keyup 为时已晚。

Plunker example

【讨论】:

请注意,“取消 keyup 为时已晚”对于诊断 Angular 8 中 @HostListener 的默认设置非常有用。

以上是关于Angular2使textarea按Enter而不添加新行的主要内容,如果未能解决你的问题,请参考以下文章

通过点击“Enter”从textarea提交数据

如何使用 php 保留一些限制的空格?

当用户按下 <enter> 或单击计算按钮而不使用两个单独的 def 函数时,如何让 Python3 计算两个数字?

在angular2中自动调整textarea

通过 telnet 发送数据而不按回车键

将换行符添加到 textarea 而不是提交表单