逗号用jquery自动完成分隔自动完成

时间:2012-01-03 18:17:23

标签: jquery jquery-plugins jquery-autocomplete

我正在尝试通过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});  
});
});

谢谢, 拉姆亚。

2 个答案:

答案 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
        });  
    });
});