Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery自动完成插件(Jorn Zaeffer的)-如何动态更改显示值的列表?_Jquery_Autocomplete - Fatal编程技术网

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

jQuery自动完成插件(Jorn Zaeffer的)-如何动态更改显示值的列表?,jquery,autocomplete,Jquery,Autocomplete,我用的是Jorn Zaeffer的自动完成查询插件 我设置了选项,这样当你在空文本字段中单击时,它会显示所有的值,有点像选择,并且该选项也被设置为用户只能从自动完成使用的值列表中选择,所以它有点像选择,但具有自动完成功能 我在文本字段下面有两个单选按钮,它们决定用户是从一个长列表中选择还是从一个短列表中选择可能的值。我想在单击其中一个单选按钮时更新自动完成中使用的值。目前,我正在以一种不太聪明的方式做这件事,在同一个文本字段上再次调用autocomplete,使用不同的值数组,但这会造成一种情况

我用的是Jorn Zaeffer的自动完成查询插件

我设置了选项,这样当你在空文本字段中单击时,它会显示所有的值,有点像选择,并且该选项也被设置为用户只能从自动完成使用的值列表中选择,所以它有点像选择,但具有自动完成功能

我在文本字段下面有两个单选按钮,它们决定用户是从一个长列表中选择还是从一个短列表中选择可能的值。我想在单击其中一个单选按钮时更新自动完成中使用的值。目前,我正在以一种不太聪明的方式做这件事,在同一个文本字段上再次调用autocomplete,使用不同的值数组,但这会造成一种情况,即两者同时处于活动状态,我可以看到长列表从短列表后面向外窥视

我需要做的是 动态更改自动完成中使用的值或 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
  });     
}

干杯,麦克斯就我记忆所及,是这样做的

a

b


你可以选择任何一种方式。

谢谢尼基塔,当我把flushCache部分从末尾去掉后,回答一个非常好的问题。对于flushCache调用,它在更改选项后完全停止工作。我确实读过setOptions的api条目,但没有读到您可以更改数据的内容。重新读取时,它根本没有将数据列为选项,而是将数据列为第一个参数。再次感谢-maxbtw,我不一定认为flushCache是“错误的”,我认为它不适合我设置autocomplete的特定方式。
$("#id").setOptions({
  data: array_goes_here
}).flushCache();
$("#id").unbind();