0

我正在使用以下代码使一个简单的文本框成为自动完成框,

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 脚本,因此只会出现相关结果。

4

2 回答 2

1

嗯,你没有在你的例子中传递一个对象。试试我的代码(类似于你的第一个片段):

$("#fav_rides_select").autocomplete({ source: sourceURLRide + encodeURIComponent($("#fav_rides_select").attr("value")) });
于 2012-09-22T17:39:59.297 回答
1

如果在文档准备好后它不是太小,您应该加载整个 JSON,或者您可以加载 JSON 的子集,但前提是它是真正的大数据。

这是一篇关于如何为大数据记住当前查询状态的好文章。

如果您不是 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);
  });
});
于 2012-09-22T17:53:21.907 回答