2012-01-24 58 views
1

我正在使用Chosen http://harvesthq.github.com/chosen/来填充选择列表。jQuery选择保留现有选择的动态更新

当用户从列表中选择一个项目,它就会熄灭(JSON调用),发现涉及到该选项的所有选项,删除那些从列表中,然后使用重新填充选择框:

$("#contacttribename").trigger("liszt:updated"); 

不幸的是,这会丢失用户已经选择的内容。有没有一种动态更新列表的方式,同时保持用户的选择?

欢呼

+0

您想在用户选择其中一些选项后编辑选项列表。如果我正确阅读文档,目前尚不支持。 –

+0

是的,这就是我想要做的。如果不支持,我将不得不回到老式的方式。 – Jarede

+0

你可以分叉他们的项目并做一个补丁,它应该是保持选择的选项而不是摆脱它们的问题。 –

回答

4

您可以编辑现有的代码,以使这成为可能。

转到chosen.jquery.js文件并找到函数声明为Chosen.prototype.results_build

在该函数的应该是一个if语句:

if (this.is_multiple && this.choices > 0) { 
    this.search_choices.find("li.search-choice").remove(); 
    this.choices = 0; 
    } 

评论了内部的两个行像这样:

if (this.is_multiple && this.choices > 0) { 
    //this.search_choices.find("li.search-choice").remove(); 
    //this.choices = 0; 
    } 

这将防止被清除当前选择的选择调用时
.trigger(“liszt:updated”)

+0

虽然一个警告。做完这些之后,所有选择的多项设置为true在调用触发器后都不会清除(“listz:updated”) –