我想将结果限制为最大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>
答案 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
});