我使用以下代码将简单文本框设为自动完成框
var sourceURLRide = "index.php?page=getRideAndParksJson&type=rides&keyword=";
$("#fav_rides_select").autocomplete({
source: sourceURLRide,
minLength: 1,
delay: 0
});
但我需要在fav_rides_select上触发的每个关键事件上更改源,即更改源URL,然后必须从url获取结果。但这不起作用。我正在使用以下代码将源与keyup事件同步:
$("#fav_rides_select").keyup(function(){
$("#fav_rides_select").autocomplete("option","source",sourceURLRide + encodeURIComponent($("#fav_rides_select").attr("value")) );
});
注意:我正在使用keyup事件将关键字传递给php脚本,因此只会出现相关结果。
答案 0 :(得分:1)
嗯,你没有在你的例子中传递一个对象。试试我的代码(类似于您的第一个代码段):
$("#fav_rides_select").autocomplete({ source: sourceURLRide + encodeURIComponent($("#fav_rides_select").attr("value")) });
答案 1 :(得分:1)
如果文档准备好之后它不是很小,你应该加载整个JSON,或者你可以加载你的JSON子集,但只有当它真的是大数据时才会加载。
这是一个很好的Article,关于如何为大数据记住当前查询的状态。
如果您不是Google,则可以使用以下代码:
$(document).ready(function(){
var data = $.getJSON('index.php?page=getRideAndParksJson&type=rides',function(data){
$('#fav_rides_select').autocomplete(
source: data,
minLength: 1,
delay: 0);
});
});