автозаполнение через запятую с автозаполнением jquery - PullRequest
13 голосов
/ 03 января 2012

Я пытаюсь реализовать автозаполнение через плагин jquery auto complete. У меня работает простая автозаполнение.Я не могу выполнить автозаполнение через запятую.

Пожалуйста, помогите мне с ошибкой.

Мой код jquery:

$(document).ready(function() {  
$.getJSON('/releases/new.json', function() {      
alert("inside getJson"); 
alert(data1); 
$('#release_tester_tokens').autocomplete({source:names,multiple: true});  
});
});

Спасибо, Рамя.

Ответы [ 2 ]

13 голосов
/ 03 января 2012

Посмотрите, поможет ли это сквозное .Он включает следующий код, который позволяет пользователю вводить несколько поисковых терминов, разделенных запятыми :

$("#<%= 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 стр.

4 голосов
/ 03 января 2012

В вашем примере вы обращаетесь к переменным, которые даже не определены и никогда не получат никаких результатов от вашего вызова getJSON.В JSON список, разделенный запятыми, фактически является массивом (если он заключен в [] скобки).Если это строка, просто используйте String split для создания исходного массива.

$(document).ready(function() {  
    $.getJSON('/releases/new.json', function(data) {
        $('#release_tester_tokens').autocomplete({
            source: data.list,
            multiple: true
        });  
    });
});
...