我正在尝试通过jquery auto complete plugin实现自动完成。一个简单的自动完成对我有用。我无法实现逗号分隔自动完成。
请帮助我解决我的错误。
我的jquery代码:
$(document).ready(function() {
$.getJSON('/releases/new.json', function() {
alert("inside getJson");
alert(data1);
$('#release_tester_tokens').autocomplete({source:names,multiple: true});
});
});
谢谢, 拉姆亚。
答案 0 :(得分:13)
查看此walk-through是否有帮助。它包含以下代码,允许用户输入以逗号分隔的多个搜索字词:
$("#<%= txtMultipleName.ClientID %>").autocomplete({
source: function (request, response) {
$.getJSON("AutoComplete.ashx", {
term: extractLast(request.term)
}, response);
},
search: function () {
// custom minLength
var term = extractLast(this.value);
if (term.length < 1) {
return false;
}
},
focus: function () {
// prevent value inserted on focus
return false;
},
select: function (event, ui) {
var terms = split(this.value);
// remove the current input
terms.pop();
// add the selected item
terms.push(ui.item.value);
// add placeholder to get the comma-and-space at the end
terms.push("");
this.value = terms.join(", ");
return false;
}
});
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
jQuery UI autocomplete页面上还有大量信息。
答案 1 :(得分:4)
在您的示例中,您将访问甚至未定义的变量,并且不会访问getJSON调用的任何结果。在JSON中,逗号分隔列表实际上是一个数组(如果它在[]括号中)。如果它是一个字符串,只需使用String split来创建源数组。
$(document).ready(function() {
$.getJSON('/releases/new.json', function(data) {
$('#release_tester_tokens').autocomplete({
source: data.list,
multiple: true
});
});
});