【问题标题】:Prevent press enter from creating new line in Angular4防止按Enter在Angular4中创建新行
【发布时间】:2019-05-25 04:34:17
【问题描述】:

我有一个文本区域,我在按 Enter 时提交

https://stackblitz.com/edit/angular-uvxifq-uyxteg

<textarea class="message-area" (keyup.enter)="ValidateCommentAndPost(commentErr, $event);" [(ngModel)]="comment" matInput #commentErr="ngModel"></textarea>

我想在按回车时禁用新线路,所以我在网上获取了一些信息并做了。

ValidateCommentAndPost(ngComment:NgModel, event?:KeyboardEvent){
    event.preventDefault();
    if((ngComment.invalid && (ngComment.dirty || ngComment.touched)) && ngComment.errors) {
        this.ResetComment();
    } else {
        this.PostComment();
    }
}

但这不起作用,return false; 仍然会创建一条白线。

我能做什么?

【问题讨论】:

标签: html angular forms input


【解决方案1】:

添加事件以捕获进入并阻止默认行为。 将 keydown 事件添加到您的组件 html

<textarea required
(keydown.enter)="onKeydown($event)" (keyup.enter)="ValidateCommentAndPost(commentErr, $event);" pattern="/^[/\S/]+$/i" [(ngModel)]="value" matInput #commentErr="ngModel"></textarea>

并将其添加到您的组件 ts 文件中

onKeydown(event){
      event.preventDefault();
    }

【讨论】:

  • 这个太傻了啊啊啊,谢谢。我完全忘记了新行适用于按键...谢谢
  • 我回应了 keydown 观察。我使用keyup无济于事
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 2010-10-28
  • 1970-01-01
  • 2012-05-08
相关资源
最近更新 更多