jQuery限制结果
问题描述:
我想限制结果为最大10,但我的代码在下面不起作用。我得到未捕获的SyntaxError:意外的标识错误就行var results = 'search-db.php';
jQuery限制结果
<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>
答
正如我已经说过我的评论,这不是有效的JavaScript。
documentation描述了如何检索数据的各种方法。
既然要限制显示的项目数,你有两个possibilites:
让服务器只返回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
});
好了,这是不合法的JavaScript。对象文本中不能有赋值语句。您可以在'.autocomplete()'调用之前移动它。另外我不明白为什么你会为此目的在**字符串**上调用'.slice'。什么是“响应”?那个';'在那里也是无效的。我建议首先熟悉基本语法:https://developer.mozilla.org/en/JavaScript/Guide。 – 2012-08-01 12:30:15
我是jQuery中的新成员。它可能看起来很傻。我把它留作'源:'search-db.php',minLength:3'然后它工作正常。我只需要限制输出。 – BentCoder 2012-08-01 12:34:46
更重要的是,您在尝试任何操作之前先阅读文档。 – 2012-08-01 12:37:15