Как сопоставить значения json с ожидаемыми значениями и метками пользовательского интерфейса jQuery? - PullRequest
1 голос
/ 28 февраля 2011

Я пытаюсь заставить работать автозаполнение jQuery.Проблема в том, что мой массив json состоит из свойств "name" и "id".JQuery ожидает «значение» и «метка».Я хочу сопоставить «name» с «label» и «id» с «value».

Вот рабочий пример, в котором я использую ожидаемые имена свойств jQuery:

    $(function() {
        var projects = [
            {value: "aaron-112", label: "Aaron"},
            {value: "andy-123", label: "Andy" },
            {value: "greg-122", label: "Greg" }];

        $( "#project" ).autocomplete({
            minLength: 0,
            source: projects,
            focus: function( event, ui ) {
                $( "#project" ).val( ui.item.label );
                return false;
            },
            select: function( event, ui ) {
                $( "#project" ).val( ui.item.label );
                $( "#project-id" ).val( ui.item.value );
                return false;
            }
        })
        .data( "autocomplete" )._renderItem = function( ul, item ) {
            return $( "<li></li>" )
                .data( "item.autocomplete", item )
                .append( "<a>" + item.label + "</a>" )
                .appendTo( ul );
        };
    });
    </script>

<div class="demo">
    <input id="project"/>
    <input type="hidden" id="project-id"/>
    </div>

Но мой JSON выглядит так:

   [{id: "aaron-112", name: "Aaron"},
    {id: "andy-123", name: "Andy" },
    {id: "greg-122", name: "Greg" }];

1 Ответ

2 голосов
/ 01 марта 2011

Не могли бы вы изменить данные перед использованием их с плагином?

Например:

var newProjects = [];
$.each(projects, function() { 
  newProjects.push( { value: this.id, label: this.name } );
});

А затем использовать newProjects с плагином?

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