0

我想从服务器获取数据并建议提前输入。我将我的数据从列表中获取到类似的 usl 中,/foo/q=QUERY并且此查询返回 json like ["salam","bye", "khodafez,]。我如何使用从引导输入到建议。我试试这段代码:

 <script type="text/javascript">
            $(document).ready(function() {
                $("#vahid").typeahead({
                     // ???    
                });
            });
          </script>
4

2 回答 2

3

根据文档,您只需在选项中提供一个功能source

$("#vahid").typeahead({
    source: function(query, process) {
        // `query` is the text in the field
        // `process` is a function to call back with the array
        $.ajax({
            // Your URL
            url: "/foo",

            // Your argument with the query as its value
            data: {q: query},

            // Success callback -- since it expects the first
            // parameter to be the data, and that's what the
            // success callback is called with, you can just
            // use `process` directly
            success: process
        });
    }
});

以上假设响应正确地将响应标识为Content-Type: application/json。如果没有,请添加

dataType: "json"

...根据您的ajax选择。

我正在使用异步机制,因为您正在查询服务器。如果您已经拥有数据客户端,则可以直接从source函数中返回它。但是它们(智能地)不需要您从服务器同步检索它,因为这会导致错误的 XU。

于 2013-06-06T12:07:48.983 回答
1

根据文档https://github.com/tcrosen/twitter-bootstrap-typeahead ,您可以添加 ajax attr,例如:

$('#myElement').typeahead({
    ajax: '/path/to/mySource'
});

或者

var mySource = [
    { id: 1, name: 'Terry'}, { id: 2, name: 'Mark'}, { id: 3, name: 'Jacob'}
];

$('#myElement').typeahead({
    source: mySource
});

对于本地数据

于 2013-06-06T12:11:46.580 回答