我正在使用 Jorn Zaefferer 的自动完成查询插件 http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/
我设置了选项,这样当您单击空文本字段时它会显示所有值,有点像选择,并且还设置了该选项以便用户只能从自动完成使用的值列表中进行选择(所以它有点像选择但具有自动完成功能)。
文本字段下方有两个单选按钮,它们确定用户是从可能值的长列表还是短列表中进行选择。我想在单击这些单选按钮之一时更新自动完成中使用的值。目前,我正在以一种不太聪明的方式执行此操作,即使用不同的值数组在同一文本字段上再次调用自动完成功能,但这会造成两者同时处于事件状态的情况,并且我可以看到长列表从入围名单后面。
我需要做的是 a) 动态更改自动完成中使用的值或 b) 在重新初始化之前从文本字段中删除(取消绑定(bind)?)自动完成功能。
尽管选项 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
});
}
干杯,最大
最佳答案
据我所知,它是这样完成的。
一)
$("#id").setOptions({
data: array_goes_here
}).flushCache();
b)
$("#id").unbind();
您可以选择任一方式。
关于jQuery Autocomplete 插件(Jorn Zaefferer 的)- 如何动态更改显示值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2783005/