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’事件调用(参见完整代码的文章)。
干杯
马特