我正在尝试访问对象中的值:
<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
。任何想法为什么会发生这种情况?
答案 0 :(得分:8)
来自jQuery UI自动完成文档:
选择强>
从菜单中选择项目时触发。默认操作 是用所选的值替换文本字段的值 项目。取消此事件可防止更新值。 [...]
这里发生的事情是:将输入包含的值替换为“自动完成”小部件 - 但随后小部件将自行替换它。 )将return false;
添加到您的函数中以使其正常工作。
作为旁注,您不必再次查找该元素的DOM:
this.value = ui.item.label;
......应该做的伎俩。 )