访问javascript对象中的属性的奇怪行为

时间:2012-12-19 14:00:57

标签: javascript jquery jquery-ui jquery-ui-autocomplete

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

<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 个答案:

答案 0 :(得分:8)

来自jQuery UI自动完成文档:

  

选择

     

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

这里发生的事情是:将输入包含的值替换为“自动完成”小部件 - 但随后小部件将自行替换它。 )将return false;添加到您的函数中以使其正常工作。

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

this.value = ui.item.label;

......应该做的伎俩。 )