【问题标题】:Unhighlight first highlighted item from AutoComplete从自动完成中取消突出显示第一个突出显示的项目
【发布时间】:2015-01-07 09:30:30
【问题描述】:

这里我在 PrimeFaces 5.1 中使用p:autoComplete 标签,但我无法从建议列表中删除第一个突出显示/选定的项目。我怎样才能删除这个?

【问题讨论】:

  • 没有找到任何可以配置此问题的属性。我也尝试了这个link的解决方案
  • 在这种情况下,它没有被选中它被突出显示你的意思是?
  • 像标准的谷歌搜索工作一样,在这种情况下可能吗?
  • 查看相同的答案!

标签: jsf-2 primefaces


【解决方案1】:

由于您的“问题”来自这个特定的line

firstItem.addClass('ui-state-highlight');

这里发生的情况是,当建议准备好显示时,脚本会突出显示列表的第一项,因此在您的情况下,您只需“取消突出显示”该项目。

我创建了一个小函数,可以在您拥有的每个 AutoComplete 上执行此操作,您可以在 document.ready 或您认为合适的任何地方调用它:

function removeHighlightedFirstItem() {
  var oldAutoCompleteShowSuggestions = PrimeFaces.widget.AutoComplete.prototype.showSuggestions;

  PrimeFaces.widget.AutoComplete.prototype.showSuggestions = function(query) {     
     //calling original ShowSuggestions 
     oldAutoCompleteShowSuggestions.apply(this, [query]);
     //after ShowSuggestions
     //remove first item highlight 
     var firstItem = this.items.eq(0);
     firstItem.removeClass('ui-state-highlight');
  }
}

结果如下所示:

注意:通过将autoHighlight = "false" 属性添加到组件,您请求的功能可用于5.1.5、5.0.14 和5.2。

【讨论】:

  • 非常感谢 Hatem :)
  • 谢谢!这很有帮助:)
  • 如何按回车键提交表单,目前我必须在按回车键之前按 ESC 自动完成,然后按回车键提交表单?
猜你喜欢
  • 2011-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2015-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多