jQuery限制结果

时间:2012-08-01 12:28:56

标签: jquery

我想将结果限制为最大10但我的代码不起作用。我在第var results = 'search-db.php';未捕获的SyntaxError:意外的标识符错误

<html>
<head>
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function()
        {
            $('#textbox_postcode').autocomplete(
            {
                var results = 'search-db.php';

                source: response(results.slice(0, 10));,
                minLength: 3
            });
        });
    </script>
</head>

<body>
    <input type="text" id="textbox_postcode" value="" />
</body>
</html>

1 个答案:

答案 0 :(得分:2)

正如我在评论中所说,这不是有效的JavaScript。

documentation描述了检索数据的各种方法。

由于您希望限制显示的项目数量,因此您有两种可能性:

  • 让服务器只返回10个项目。这将是最明智的解决方案,因为您无论如何都不会传输您不会使用的数据。

  • 使用回调作为source,发出Ajax请求并相应地准备数据。

以下是第二个解决方案的示例:

$('#textbox_postcode').autocomplete({
    source: function(request, callback) {
        $.getJSON('search-db.php', request).then(function(items) {
            // success
            callback(items.slice(0,10));
        }, function() {
            // error - callback must always be called as per documentation
            callback([]);
        });
    },
    minLength: 3
});