JS - jquery (UI) - запуск автозаполнения от внешнего звонка - PullRequest
1 голос
/ 24 августа 2011

Если возникла проблема с моим полем автозаполнения удаленного источника данных:

$( "#birds" ).autocomplete({
        source: function(request, response) {
                $.ajax({
                    url: "xxxx",
                    dataType: "json",
                    data: {
                        y:  y,
                        x:  x,
                    },
                    success: function(data) {
                        response(data);
                    }
                });
            },
        minLength: 0,
        select: function( event, ui ) {
            alert( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
        }
    }).live("click", function() {
         $(this).trigger('keydown.autocomplete');
    });

.live ("клик") работает хорошо, но только для первого клика. Если я выбрал результат из списка и оставил фокус, события клика были разбиты. С клавишами нет никаких проб. Ничего не вижу в консоли.

Спасибо за помощь, Нома

-> Извините за плохой английский (2 года не в порядке)

1 Ответ

0 голосов
/ 24 августа 2011

Какую версию вы используете для автозаполнения?

Попробуйте использовать более простой код

$("#birds").autocomplete("xxxx", {
        width: 400,
        dataType: 'json',
        highlight: false,
        scroll: true,
        scrollHeight: 400,
        parse: function(data) {
                var array = new Array();
                for(var i=0;i<data.items.length;i++)
                {
                        array[array.length] = { data: data.items[i], value: data.items[i], result: data.items[i].username };
                }
                return array;
        },

        formatItem: function(row) {                     
                var name = '';
                if (row.first_name && row.last_name)
                        name = '('+row.first_name+', '+row.last_name+')';
                else if (row.first_name)
                        name = '('+row.first_name+')';
                else if (row.last_name)
                        name = '('+row.last_name+')';

                return row.username+' '+name;
        }
    });

Очевидно, замените ключевые значения в соответствии с вашим выводом json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...