10

我正在尝试访问对象中的值:

<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调用的结果:

在此处输入图像描述

这是奇怪的一点:

如果console.log(ui.item.label)我得到:Boston, Massachusetts, United States

如果我打电话$('input[name="address-search"]').val(ui.item.label);,我只会得到Boston. 任何想法为什么会发生这种情况?

4

1 回答 1

8

来自 jQuery UI 自动完成文档:

选择

当从菜单中选择一个项目时触发。默认操作是将文本字段的值替换为所选项目的值。取消此事件可防止值被更新。[...]

这里会发生什么:您将输入中的值替换为“自动完成”小部件 - 但随后小部件会自行替换它。) 添加return false;到您的功能以使其工作。

作为旁注,您不必再次查找该元素的 DOM:

this.value = ui.item.label;

...应该做的伎俩。)

于 2012-12-19T14:07:35.340 回答