bootstrap typeahead url / redirect

时间:2013-05-19 23:38:43

标签: bootstrap-typeahead typeahead

        $(function(){

        var orthoObjs = {};
        var orthoNames = [];


        var throttledRequest = _.debounce(function(query, process){

            $.ajax({
                url: 'json/ortho4.json'
                ,cache: false
                ,success: function(data){


                orthoObjs = {};
                orthoNames = [];


                _.each( data, function(item, ix, list){



                orthoNames.push( item.searchPhr );


                        orthoObjs[ item.searchPhr ] = item;

                    });


                    process( orthoNames );
                }
            });
        }, 300);


        $(".typeahead").typeahead({
            source: function ( query, process ) {


                throttledRequest( query, process );

            }

        ,updater: function (item) {

        var url = "orthoObjs[item.searchUrl]";

        window.location = url;

什么是让重定向工作的最佳方法?我见过类似的问题,但无法让它发挥作用。有关预先输入的文档并不是很好。我对每个函数使用underscore.js。只需要一个简单的搜索查询,在用户选择时重定向。

1 个答案:

答案 0 :(得分:1)

我实际上已经开始工作了。我得到了一点帮助......但现在是这样。有JSON文件..

[
   { "id":1,  "searchUrl":"invisalign.html", "name":"invisalign" }
    ,{ "id":2, "searchUrl":"invisalign.html", "name":"invisalign teen"  }
    ,{ "id":3, "searchUrl":"clearbraces.html", "name":"clear braces"  }
]

HTML代码......

这里有很多好东西.. http://fusiongrokker.com/post/heavily-customizing-a-bootstrap-typeahead

搜索代码..

<form method="post" id="myForm" class="navbar-search pull-left">  
      <input 
            type="text"
            class="search-query typeahead"
            placeholder="Search Our Website"
            autocomplete="off"
            data-provide="typeahead"
            />
            <i class="fa-icon-search icon-black"></i>  
</form> </li>

 $(function(){

      var bondObjs = {};
      var bondNames = [];

      $(".typeahead").typeahead({
        source: function ( query, process ) {

          //get the data to populate the typeahead (plus an id value)
          $.ajax({
            url: '/json/bonds.json'
            ,cache: false
            ,success: function(data){

              bondObjs = {};
              bondNames = [];


              _.each( data, function(item, ix, list){


                bondNames.push( item.name );


                bondObjs[ item.name ] = item.searchUrl;
              });


              process( bondNames );
            }
          });
        }
        , updater: function ( selectedName ) {

          window.location.href =bondObjs[ selectedName ];

        }
      });
    });
  </script>