0

我想将结果限制为最大 10,但我下面的代码不起作用。我收到Uncaught SyntaxError: Unexpected identifier error on linevar results = 'search-db.php';

<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>
4

1 回答 1

2

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

文档描述了如何检索数据的各种方法。

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

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

  • 使用回调 as 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
});
于 2012-08-01T12:42:16.003 回答