我正在努力解决以下问题。我使用jQuery autocomplete plugin从服务器获取建议值列表。列表看起来像这样:
Username1|UserId1 Username2|UserId2
因此,如果我开始输入“U”,则会弹出"Username1"
和"Username2"
的列表,如预期的那样。我可以选择第一个项目,<input>
的值将变为"Username1"
,但我真正想要发送到服务器的是用户ID。
我可以以某种方式获取跟随用户名的ID吗?我打算在更改文本框时填写表格。也许我太盲目了,无法在文档中看到它或在Google上找到它?
答案 0 :(得分:6)
使用result
插件的autocomplete
方法来处理此问题。数据作为数组传递给回调,您只需要在某处保存data[1]
。像这样:
$("#my_field").autocomplete(...).result(function(event, data, formatted) {
if (data) {
$("#the_id").attr("value", data[1]);
}
});
答案 1 :(得分:0)
我打算在这里列出一些方法,但除了一个之外的所有方法都是垃圾。在服务器上执行string-&gt;用户转换,就像生成自动完成列表一样。
一定要保持自动完成并进行AJAX验证,但是如果你尝试通过JS在表单中走私重要的表单数据(如此),那么会在某些时候出错。
此外,如果你需要处理非js用户代理,你需要以任何方式编写这个方法。
答案 2 :(得分:0)
仅供参考,本文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'事件调用(参见完整代码的文章)。
干杯
马特