jQuery UI自动完成多个值-如何在空格后而不是逗号后显示建议列表

jQuery UI AutoComplete Multiple Values - how can I show the suggestion list after a space instead of a comma?

本文关键字:空格 列表 显示 UI jQuery      更新时间:2023-09-26

我正在尝试使用jQuery UI的AutoComplete插件,特别是多值功能(带有本地数组)。目标是"智能感知"类型的效果。

建议框显示为*ONLY*在用逗号分隔您的全部内容之后。

例如:

test1, <suggestion list appears>

在我的情况下,我希望建议列表出现在SPACE之后,而不是逗号,即:

test1<space> <suggestion list appears>

这个功能(或缺乏)可以直接在上面链接的演示页面上看到,只需键入"Clojure",框就会用逗号自动完成,然后键入另一个单词,如Java,就会重新打开建议列表。如果你也这样做,键入Clojure,删除逗号,然后按空格,建议将不再出现。

我试图插入AutoComplete代码,但没有看到是什么导致了这种情况——我不反对修改实际的jQuery UI源代码本身来实现这种情况,也不反对使用完全不同的插件系统来更好地支持这种情况。

感谢您的任何帮助-如果您需要更多详细信息,请告诉我!

您可以通过修改select事件回调来更改插入的行为。如果你点击演示页面上的"查看源代码",你会看到this.value = terms.join( ", " );。只需将其更改为this.value = terms.join( " " );

编辑:您可能还想编辑演示源代码中的split()函数:

function split( val ) {
  return val.split( /,'s*/ );
}

(删除逗号)

这是一个旧Q,但我也需要它。在我的例子中,简单地删除split函数中的逗号会产生更糟糕的行为。

Calvin L Edit:您可能还想编辑演示源代码中的split()函数:

function split( val ) {
  return val.split( /,'s*/ );
}
(Remove the comma)

它不是用选定的值填充,而是连接原始部分段:例如输入字母a、aj(等)+空格+填充单词。此外,自动建议的作用更大,它没有过滤输入的字母越多,反而显示出更多的非相关结果。

解决方案是简单地用空格代替逗号:

function split( val ) {
  return val.split( / 's*/ );
}