0

我使用谷歌地图的自动完成功能来建议位置作为用户类型(http://code.google.com/p/geo-autocomplete/)。一旦用户单击其中一个建议,javascript 就会将其填充到文本字段中。一旦发生这种情况,我想重新加载页面,通过 URL 传递用户单击的完整地址。

我尝试将 onclick() 放在建议列表中并让它重新加载页面,但是,例如,如果用户键入“dubl”,然后从建议中单击“都柏林,爱尔兰”,则页面重新加载通过“dubl” . 所以我需要在 javascript 填充文本字段后重新加载页面。但我找不到javascript在哪里做这个......

4

1 回答 1

2

我不知道 jquery 使用哪个 API,如果没有更多信息,我无法提供确切的答案,但我想我可以指出方向。你有几个问题需要克服:

首先,自动完成 API 通常有一个用于选择下拉菜单的事件。这通常是因为元素在自动完成创建它们之前不存在,因此您不能提前编写选择器。jQuery UI 自动完成是这样做的:

"Triggered when an item is selected from the menu; 
ui.item refers to the selected item. The default 
action of select is to replace the text field's value 
with the value of the selected item. Canceling this event 
prevents the value from being updated, but does not 
prevent the menu from closing."

$( ".selector" ).autocomplete({
   select: function(event, ui) { //override this behavior }
});

您的另一个大问题是,如果您无法阻止自动完成触发页面重新加载,则在页面重新加载之间没有有效的客户端通信方式。除非您可以将查询字符串附加到类似.html?reload=true或类似的 URL,否则您将无法告诉重新加载的页面它已经重新加载。

于 2012-08-09T21:33:39.777 回答