Странное поведение, доступ к объекту в объекте 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;
... должен сделать трюк. )