首页 > 解决方案 > PrimeNG 自动完成 onBlur 在 onSelect 之前触发。如何获得不匹配的值

问题描述

如果没有找到键入的搜索词,我有一个 primeNG 自动完成组件需要运行一些代码。目前,我在 onBlur 事件的处理程序中有此代码。

我遇到的问题是根据https://github.com/primefaces/primeng/issues/4403 Prime Faces 将单击下拉菜单视为单击新元素,从而在用户实际离开之前触发 onBlur元素。

不知道他们这样做的原因是什么,但在我看来,正因为如此,当他们离开组件时,我无法捕捉到真正不匹配搜索的价值。还有另一种方法可以做到这一点吗?

标签: angulartypescriptangular2-formsprimeng

解决方案


我遇到了同样的问题并添加了 100 毫秒的超时:

<p-autoComplete formControlName="country" (onSelect)="onSelectCountry()" (onBlur)="onBlurCountry()"></p-autoComplete>

onSelectCountry() {
    console.log("Selected Country");
}

onBlurCountry() {
    setTimeout(()=>{
        this.onSelectCountry()
    }, 100);
}

推荐阅读