我正在尝试访问我的对象中的值:
<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)我得到:波士顿,马萨诸塞州,美国.
如果我调用$(‘input [name =“address-search”]’).val(ui.item.label);我只得到波士顿.任何想法为什么会这样发生?
解决方法
从jQuery UI自动完成文档:
select
Triggered when an item is selected from the menu. The default action
is to replace the text field’s value with the value of the selected
item. Canceling this event prevents the value from being updated. […]
这里发生了什么:将包含在“autocomplete”窗口小部件中的输入中的值替换,但是该小部件本身会替换它. )添加return false;使您的功能使其工作.
作为旁注,您不必再次查找该元素的DOM:
this.value = ui.item.label;
应该做的伎俩)