网站搜索

javascript - Angular 8 :(keyup.enter) 对只读 HTML 输入框不起作用


我正在尝试在用户按下 Enter 时触发一个函数。我将此输入设置为只读的原因是为了在值被填充后限制用户修改输入中的值。

这个值来自一个会在点击属性中触发的弹出窗口。问题是 keyup.enter 没有触发该输入框。

下面是代码:

<input type="text" [(ngModel)]="display.name"
  (click)="openProfile()" (keyup.enter)="submitProfile()" readonly
/>

<button (click)="submitProfile()" type="submit">
  Submit
</button>

答案#1

您可以设置这些属性:

[readonly]="isValuePapulated"

或

[disabled]="isValuePapulated"

或仅使用:

[ngModel]="display.name"
(ngModelChanged)=onModelChanged($event)
// in component:
public onModelChanged(value: any): void {
    if (isValuePapulated) {
       return;
    }

   this.display.name = value;
}