Странное поведение, доступ к объекту в объекте javascript

Я пытаюсь получить доступ к значению в моем объекте:

<input type="text" name="address-search" 
       placeholder="43 Roxling Drive Boston, MA" 
       class="ui-autocomplete-input ui-corner-all" autocomplete="off">

select: function( event, ui ) {
    console.log(ui);
    $('input[name="address-search"]').val(ui.item.label);
}

Здесь результат вызова console.log:

enter image description here

Здесь странный бит:

Если я console.log(ui.item.label), я получаю: Boston, Massachusetts, United States.

Если я вызываю $('input[name="address-search"]').val(ui.item.label);, я получаю только Boston. Любые идеи, почему это происходит?

Ответ 1

Из jQuery UI autocomplete doc:

выберите

Запускается, когда элемент выбран из меню. Действие по умолчанию заключается в замене значения текстового поля на значение выбранного пункт. Отмена этого события предотвращает обновление значения. [...]

Что здесь происходит: вы заменяете значение в вводе, заключенном в виджет "autocomplete", но затем виджет заменяет его сам по себе. ) Добавьте return false; к своей функции, чтобы она работала.

В качестве побочного элемента вам больше не нужно искать DOM для этого элемента:

this.value = ui.item.label;

... должен сделать трюк. )