我们当前正在使用Angular 4应用程序中的Kendo UI自动完成。目前,我们允许用户输入文本,并且自动完成查找立即在输入的第一个字符上触发。
我们需要禁用搜索,直到用户按Enter键为止。
有人知道这是否可能吗?
在http://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/咨询了文档后直到按键按。
我猜想上的模糊事件可能是可用的。
您需要访问实际的基础HTML输入元素并附加键盘处理程序,然后执行自定义逻辑以防止内置过滤,直到按下Enter键通过toggle()方法,并在Enter上调用搜索处理程序:
ngAfterViewInit(){
this.ac.searchbar.input.nativeElement.addEventListener('keydown', (e) => {
if(e.which === 13){
this.enterPressed = true;
this.ac.toggle()
this.handleFilter(e.target.value)
} else {
this.enterPressed = false;
}
});
}
handleFilter(value) {
if(this.enterPressed){
this.data = this.source.filter((s) => s.toLowerCase().indexOf(value.toLowerCase()) !== -1);
}
}
onOpen(e){
if(!this.enterPressed){
e.preventDefault();
}
}
示例