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

问题描述:

我正在尝试为jQuery UI使用自动完成插件,specifically the multiple values functionality(带有本地数组)。目标是“智能感知”型效应。jQuery UI自动完成多个值 - 如何在空格而不是逗号后显示建议列表?

意见箱出现* 你有一个逗号分隔的entires 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*/); 
} 

(删除逗号)

+2

这就是它 - 我一直在寻找的方式深入到这不是我需要:)非常感谢! – Evan 2012-02-16 04:32:24

这是一个老Q,但我也需要这个。在我的情况下,在拆分函数中简单移除逗号会产生奇怪的行为。

卡尔文需要L编辑:您可能还需要编辑的演示源代码分裂()函数:

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

代替填充式与选择的价值,它也连接起来原始部分段: 例如输入字母a,aj(等)+空格+填入的单词。此外,自动建议的行为更为粗糙,而不是过滤更多的字母输入,而是显示更多不相关的结果。

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

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