角度键入事件触发两次

问题描述

我正在开发数据列表工具。在输入的keyup事件中,我正在调用get请求,该请求发送回填充数据列表的字符串数组

<input type="text (keyup)="findPostalCode($event)" list="codePostalId" />
<datalist id="codePostalId">
    <option *ngFor="let code of postalCodeList">{{code}}</option>
</datalist>

这是管理按键事件的组件功能

 findPostalCode(event: any) {
    event.stopPropagation();
    event.preventDefault();
    this.postalCodeList = [];
    let text = event.target.value;
    if (text != null && text.length > 2) {
      this.produitImmobilierService.getPostalCodes(text).subscribe( result => {this.postalCodeList = result; });
    }
  }

当我在输入中输入一个字符时,keyup事件就会触发两次。

解决方法

我可以清楚地在您的代码中看到两个事件。第一个是stopPropagation(),第二个是preventDefault()。我不确定为什么要这样编码,但是我建议您将它们包装在if条件中,以便事件可以根据特定条件发生。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...