当使用角度禁用输入字段时,有什么方法可以检测输入字段上的事件吗?

问题描述 投票:0回答:2

我正在尝试获取任何已禁用的事件事件输入字段。

<input [disabled]='disableTextbox' (click)="delectInput()">

上面这是我的输入字段。我试图在事件处于禁用状态时获取该事件。 这是我的示例。 有人知道当输入被禁用时是否有任何方法可以检测任何事件模糊点击悬停?

javascript html angular events detect
2个回答
0
投票

您可以使用相同的示例代码,但通过将其更改为

<div (click)="toggleDisable($event)">
来更改 HTML 中的函数。然后你可以添加toggleDisable函数到
event.target.style.cursor = 'none';


0
投票

您可以使用 FormControl 轻松跟踪禁用状态。 FormControl 有

registerOnDisabledChange()
,它正是你想要的。但是,当使用 FormControl 时,我们需要记住不要在模板中使用
[disabled]
,而是在满足条件时使用
this.formCtrl.disable()
this.formCtrl.enable()
以编程方式禁用/启用 formControl。

因此创建一个表单控件并在模板中使用它。

<input [formControl]="formCtrl" />

然后监听formcontrol的disabled状态,当状态改变时执行你想要的操作。为了演示,我只是使用

setTimeout
来禁用和重新启用表单控件。每当状态改变时,就会调用下面的
test
函数:

formCtrl = new FormControl();

test() {
  console.log('is ctrl disabled? ', this.formCtrl.disabled);
}

ngOnInit() {
  this.formCtrl.registerOnDisabledChange(() => this.test())

  setTimeout(() => {
    this.formCtrl.disable();
  }, 1000);

  setTimeout(() => {
    this.formCtrl.enable();
  }, 2000)
}

演示

© www.soinside.com 2019 - 2024. All rights reserved.