jQuery自动完成 – 如何处理额外的数据?

我正在努力解决以下问题。 我使用jQuery自动完成插件从服务器获取建议值列表。 列表看起来像这样:

 USERNAME1 | UserId1
 USERNAME2 | UserId2

因此,如果我开始键入“U”,则会弹出"Username1""Username2"列表,如预期的那样。 我可以选择第一个项目, 的值将变为"Username1" ,但我真正想要发送到服务器的是用户ID。

我可以以某种方式获取跟随用户名的ID吗? 我打算在更改文本框时执行表单发布。 也许我太盲目了,无法在文档中看到它或在Google上找到它?

使用autocomplete插件的result方法来处理此问题。 数据作为数组传递给回调,你只需要在某处保存data[1] 。 像这样的东西:

 $("#my_field").autocomplete(...).result(function(event, data, formatted) { if (data) { $("#the_id").attr("value", data[1]); } }); 

我打算在这里列出一些方法,但除了一个之外的所有方法都是垃圾。 在服务器上执行字符串 – >用户转换,就像生成自动完成列表一样。

通过各种方式保持自动完成并进行AJAXvalidation,但如果您尝试通过JS在表单中走私重要的表单数据(如此),某些事情在某些时候出错。

此外,如果您需要处理非js用户代理,您需要以任何方式编写此方法。

仅供参考,本文http://vivien-chevallier.com/Articles/use-bing-maps-rest-services-with-jquery-to-build-an-autocomplete-box-and-find-a-location-dynamically通过作者的函数’displaySelectedItem’实现它的好方法,它通过jQuery自动完成’select’事件调用(参见完整代码的文章)。

干杯

马特