jQuery自动完成插件(Jorn Zaefferer's) - 如何动态更改显示值列表?

时间:2010-05-06 17:13:30

标签: jquery autocomplete

我正在使用Jorn Zaefferer的自动填充查询插件,http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

我有选项设置,因此当您单击空文本字段时显示所有值,有点像选择,并且还设置了选项,以便用户只能从自动完成使用的值列表中进行选择(所以它有点像选择但具有自动完成功能)。

我在文本字段下面有两个单选按钮,用于确定用户是从长列表中选择还是从可能值的短列表中选择。我想在单击其中一个单选按钮时更新自动完成中使用的值。目前我通过在相同的文本字段上使用不同的值数组再次调用自动完成来以非常聪明的方式执行此操作,但是这会创建一个两个都立即处于活动状态的情况,并且我可以看到长列表被窥视从短名单后面。

我需要做的是 a)动态更改自动完成中使用的值或 b)在重新初始化之前,从文本字段中删除(解除绑定?)自动完成。

虽然选项a)有点好,但这些都可以做到。

任何想法?这是我目前的代码:

function initSubjectLongShortList(field, short_values, long_values){
  $(".subject_short_long_list").change(function(){
    updateSubjectAutocomplete(field, short_values, long_values);
  });
  updateSubjectAutocomplete(field, short_values, long_values);
}

function updateSubjectAutocomplete(field, short_values, long_values){
  if($(".subject_short_long_list:checked").attr('id') == "subject_long_list"){
    initSubjectAutocomplete(field, long_values);
  } else {
    initSubjectAutocomplete(field, short_values);    
  }
}

function initSubjectAutocomplete(field, values){
  jQuery(field).autocomplete(values, {
    minChars: 0,  //make it appear as soon as we click in the field
    max: 2000,
    scrollHeight: 400,
    matchContains: true,
    selectFirst: false
  });     
}
欢呼,最大

1 个答案:

答案 0 :(得分:3)

就我而言,就这样做了。

A)

$("#id").setOptions({
  data: array_goes_here
}).flushCache();

b)中

$("#id").unbind();

您可以选择其中一种方式。