如何在DHTMLX组合中生成自定义建议列表

如何在DHTMLX组合中生成自定义建议列表

问题描述:

由DHTMLX组合提供的自动建议列表在每次击键时都会更新,但显然只使用前缀匹配。如何更改逻辑以匹配选项文本中的任何位置。如何在DHTMLX组合中生成自定义建议列表

E.g.在下面的小提琴:

https://jsfiddle.net/wra8etjw/2/

我想对于“三公”的建议,甚至显示,当我在框中键入“EE”。我已阅读有关custom filtering的文档,但自定义过滤方法和用户定义的函数都无法让我获得任何地方。

我以基本方式使用DHTMLX组合框。即选项在服务器提供的HTML文件中呈现为文字(它们非常静态),因此onDynXLS永远不会被触发(没有发生Ajax)。

我的另一个想法是捕获用户正在键入的当前值,将其保存到某个全局变量,然后提供一个用户定义的过滤函数,该函数将在所有存在当前值的值上返回true(而不是只是作为前缀)。这也失败了,因为用户定义的过滤函数显然只在页面加载时被调用,而不是在输入文本中的每个击键上调用。此外,我不知道甚至用哪个来捕获组合输入文本中的关键笔划并获取当前值。

所以我的问题是:

  1. 如何进行的建议列表,其中当前文本作为一个子字符串中的任何地方存在他们,而不是仅仅作为前缀显示值?
  2. 如何捕获Combo输入文本中的击键并在用户输入时获取当前值?

  1. 如何进行的建议显示值列表,其中当前文本作为一个子字符串中的任何地方存在他们,而不只是作为一个前缀?

使用enableFilteringMode('between')

  1. 如何捕获在组合的输入文本的键盘和获得的电流值作为用户正在键入?
开始=>

最简单的方法是IMO在组合使用了底层input元件连接的处理程序。

更新提琴here

如何使在当前文本作为字符串中的任何地方存在他们,而不是仅仅作为前缀的建议值显示列表?

不幸的是这样的特征,不提供无dhtmlxCombo源代码 的修改或应该使用服务器端过滤模式,所以你将能够使用onDynXLS事件的解决方案。

如何捕捉在组合的输入文本的击键和获取当前值作为用户键入?

您可以尝试使用“onKeyPressed”事件: https://docs.dhtmlx.com/api__dhtmlxcombo_onkeypressed_event.html