Bootstrap预先输入名称值对问题

时间:2015-07-31 07:53:18

标签: twitter-bootstrap bootstrap-typeahead basicnamevaluepair

我有一个如下的JSON数据:

[   {     “id”:1     “name”:“firstName”   },   {     “id”:2     “name”:“secondName”   } ]

现在,我正在使用 Bootstrap Typeahead 。我想在typeahead下拉列表中向用户显示“名称”,但是我需要用户选择的“名称”的相应“id”,我们以前在选择框中做了什么。 我的要求是这样的

<select>
   <option value="1">First Name</option>
   <option value="2">Second Name</option>
</select>

1 个答案:

答案 0 :(得分:0)

我不习惯Bootstrap typeahead,但是当我在一点点搜索后看到它的例子时,它们并没有将数据显示为选择菜单。他们将数据显示为div标签。所以我认为这不是你需要的。

所以我将分享这个jquery解决方案,从你提供的数据数组中创建你需要的东西。

但首先,你的数据数组是一个对象数组,所以在object元素和另一个对象元素之间应该有一个逗号“,”,除了最后一个元素之外,这是真的。

所以你的数组应该是这样的:

[ { "id": 1, "name": "firstName" }, { "id": 2, "name": "secondName" } ]

用于从该数组中编写所需的select标记的jquery解决方案是:

var data=[ { "id": 1, "name": "firstName" }, { "id": 2, "name": "secondName" } ];
var el= document.createElement("select");
for (var i=0 ; i<data.length; i++){
    var child = "<option value='"+data[i].id+"'>"+data[i].name+"</option>";
    $(el).append(child);
}
document.body.appendChild(el); 

这是fiddle