jQuery UI Автозаполнение, как реализовать Must Match в существующей настройке? - PullRequest
1 голос
/ 30 июня 2011

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

$("#foo").autocomplete({
    source: function( request, response ) {
        $.ajax({
            url: "index.pl",
            dataType: "json",
            data: {
                type: 'foo',
                term: request.term
            },
            success: function( data ) {
                response( $.map( data.items, function( item ) {
                    return {
                        value: item.id
                    }
                }));
            }
        });
    },
    minLength: 1
});

1 Ответ

0 голосов
/ 20 июня 2013

Ответ на этот вопрос для всех, кто сталкивается с этой проблемой в 2013 году (да!)

$("#my_input").autocomplete({
    source: '/get_data/',
    change: function(event, ui) {
        var source = $(this).val();
            var temp = $(".ui-autocomplete li").map(function () { return $(this).text()}).get();
        var found = $.inArray(source, temp);

        if(found < 0) {
            $(this).val(''); //this clears out the field if non-existing value in <select><options> is typed.
        }
    }
});

Объяснение: Метод map () создает заполненный объект jQueryс тем, что возвращено из функции (в данном случае текстовым содержимым каждого <li> элемента).

Метод get () (при отсутствии аргумента) преобразует этот объект jQuery в фактический массив.

Вот оригинальная ссылка , где я видел решение.

Надеюсь, это поможет.Спасибо!

...