【发布时间】:2012-09-26 14:05:01
【问题描述】:
我正在尝试通过 json 将一组值传递给 Bootstrap 的 Typeahead 插件的 source: 选项。
这是我的简单代码:JsFiddle
我有一个 JSON 对象,我只想将值 id 传递给 source: array
我做错了什么...我尝试了很多东西。
【问题讨论】:
标签: jquery arrays json twitter-bootstrap
我正在尝试通过 json 将一组值传递给 Bootstrap 的 Typeahead 插件的 source: 选项。
这是我的简单代码:JsFiddle
我有一个 JSON 对象,我只想将值 id 传递给 source: array
我做错了什么...我尝试了很多东西。
【问题讨论】:
标签: jquery arrays json twitter-bootstrap
Twitter 的 typeahead 需要一个 Javascript 数组类型。因此,您需要使用 JSON.parse(myJSONObject) 将您的 JSON 对象转换为合法数组。但是,预输入也需要一个字符串数组,而不是数组数组...所以,问题是 - 您要在预输入中显示这些数组的哪个参数?
{
"id":"2",
"pid":"0",
"type":"Group",
"code":"g",
"status":"1"
}
看起来您的 vals 函数正在隔离 id 参数。如果这是您希望提前显示的参数,只需将source 指向x。签出这个修改后的 jsFiddle:
【讨论】:
var input = $('#test'); input.typeahead({ source: x }); 移动到javascript 代码的底部,它应该适合您。
还有用于此目的的 local 属性。
您可以在 typeahead 中使用 local 属性来提供数组,而无需处理数据。
例如
var data = ["john", "terry", "phil","stuart","louis","marie","bob"];
$("#user-search").typeahead({
name: "user-search",
local: data,
limit: 10
});
【讨论】: