我需要一个简单的自动完成搜索功能,但也允许用户输入多个值。我正在使用jQuery UI的自动填充小部件(http://jqueryui.com/autocomplete/),到目前为止,我已将源设置为只搜索建议中的第一个字母。我现在要添加的是用户能够从同一文本框中搜索多个项目的功能。 (即再次显示逗号建议后)jQuery UI自动完成文本框中的多个值
我一直在试图搜索如何做到这一点。我设法找到的唯一一个选项是可以添加multiple: true
(http://forum.jquery.com/topic/multiple-values-with-autocomplete)。事情是,它甚至没有在文档中列出,所以我不知道该选项是否已经改变或不存在了。
这是我的代码:
var items = [ 'France', 'Italy', 'Malta', 'England',
'Australia', 'Spain', 'Scotland' ];
$(document).ready(function() {
$('#search').autocomplete({
source: function (req, responseFn) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp('^' + re, 'i');
var a = $.grep(items, function (item, index) {
return matcher.test(item);
});
responseFn(a);
}
});
});
我试了一下:
var items = [ 'France', 'Italy', 'Malta', 'England',
'Australia', 'Spain', 'Scotland' ];
$(document).ready(function() {
$('#search').autocomplete({
source: function (req, responseFn) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp('^' + re, 'i');
var a = $.grep(items, function (item, index) {
return matcher.test(item);
});
responseFn(a);
},
multiple: true
});
});
太棒了! :)唯一的问题是,我似乎无法让它与上面的代码中的RegEx一起工作。现在它忽略了RegEx –
如果它是正确的,那么你接受这个答案 –
这是正确的,但它没有与我所拥有的RegEx一起工作。我希望这些建议与搜索的第一个字母相匹配,而不是“逐字母”。这是我唯一的问题。如果你看看我发布的代码,我有一个RegEx来迎合这个。即使您的代码正常工作,但在添加RegEx代码时,我仅对第一个单词显示以上建议。 –