利用Bootstrap的typeahead作为搜索功能

时间:2013-05-15 14:44:14

标签: search twitter-bootstrap bootstrap-typeahead typeahead

我的打字工作很好,但我对Javascript缺乏经验,无法理解如何将输入的结果转换为链接。

<input type="text"
                       class="span3"
                       data-provide="typeahead"
                       placeholder="City Search:"
                       data-items="6"
                       autocomplete="off" 
                       data-source=[&quot;Neuchatel&quot;,&quot;Moutier&quot;]">

所以,我真的只想知道如何将字符串从数据源转换为其他页面的链接。希望这很简单。

谢谢!

1 个答案:

答案 0 :(得分:4)

您可以轻松地将字符串转换为链接..

<input type="text" data-provide="typeahead" data-source="[&quot;/foo.html&quot;,&quot;http://www.google.com&quot;,&quot;/about.html&quot;]">

您是否也希望从输入中获取链接,然后导航到所选页面?

编辑: 导航到预先中选择的项目。

在这种情况下,您将定义一个包含键(标签)和值(url)的对象映射,例如..

var data = {
  "login":"/login",
  "home":"/",
  "user":"/user",
  "tags":"/tags",
  "google":"http://google.com"
};

然后你发起了预先输入。将定义sourceupdater函数来处理1)从地图对象创建先行数据源数组,以及2)在选择项目时导航到相应的URL。

$('.typeahead').typeahead({
  minLength:2,
  updater: function (item) {
        /* navigate to the selected item */
        window.location.href = data[item];
    },
  source: function (typeahead, query) {
    var links=[];
    for (var name in data){
        links.push(name); 
    }

    return links;
    }
});

Demo on Bootply