清除并刷新 jQuery Chosen 下拉列表

Posted

技术标签:

【中文标题】清除并刷新 jQuery Chosen 下拉列表【英文标题】:Clear and refresh jQuery Chosen dropdown list 【发布时间】:2013-12-07 12:43:22 【问题描述】:

我正在尝试清除 jQuery Chosen 下拉列表并刷新它。

html

<select data-placeholder="Select Picture..." class="chosen-select" style="width:250px;" id="picturegallery" tabindex="2">
    <option value="" selected="selected"></option>
    <option value="x">remove me</option>
</select>

当我点击“刷新”按钮时,它应该变成这样:

<select data-placeholder="Select Picture..." class="chosen-select" style="width:250px;" id="picturegallery" tabindex="2">
    <option value="1">test</option>
</select>

我尝试过的:

$("#refreshgallery").click(function()
    $('#picturegallery').empty();
    var newOption = $('<option value="1">test</option>');
    $('#picturegallery').append(newOption);
);

但我无法让它更新该下拉列表... 一些帮助? :)

【问题讨论】:

DOM 中的代码准备好了吗? 是的(评论太短,随机文本) 【参考方案1】:

使用.trigger("chosen:updated");,您可以在追加后更新选项列表。

动态更新 Chosen: 如果您需要更新选择字段中的选项并希望 Chosen 获取更改,您将 需要在现场触发“chosen:updated”事件。选择的意志 根据更新的内容重新构建自己。

您的代码:

$("#refreshgallery").click(function()
        $('#picturegallery').empty(); //remove all child nodes
        var newOption = $('<option value="1">test</option>');
        $('#picturegallery').append(newOption);
        $('#picturegallery').trigger("chosen:updated");
    );

【讨论】:

是的... .html() 会破坏所选的组合。 谢谢,我正在寻找这个解决方案 你救了我的命 :) 如果这对我不起作用。试试这个: $('#picturegallery').trigger("liszt:updated");【参考方案2】:

如果trigger("chosen:updated"); 不工作,使用@Nhan Tran 的.trigger("liszt:updated"); 工作正常。

【讨论】:

Please use Answers exclusively to answer the question。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您拥有sufficient reputation,您就可以comment on any post。同时,请不要使用答案发布 cmets。 @TimDiekmann 这个答案对我更有用,但你说他犯了一个错误。在这里,我们正在寻找与 Facebook/Instagram/任何其他社交媒体不同的帖子和评论的答案。 ca Michel => 谢谢。【参考方案3】:
$("#idofBtn").click(function()
        $('#idofdropdown').empty(); //remove all child nodes
        var newOption = $('<option value="1">test</option>');
        $('#idofdropdown').append(newOption);
        $('#idofdropdown').trigger("chosen:updated");
    );

【讨论】:

请花点时间描述一下这段代码是如何解决问题的。【参考方案4】:

MVC 4:

    function Cargar_BS(bs) 
        $.getJSON('@Url.Action("GetBienServicio", "MonitoreoAdministracion")',
                        
                            id: bs
                        ,
                        function (d) 
                            $("#txtIdItem").empty().append('<option value="">-Seleccione-</option>');
                            $.each(d, function (idx, item) 
                                jQuery("<option/>").text(item.C_DescBs).attr("value", item.C_CodBs).appendTo("#txtIdItem");
                            )
                            $('#txtIdItem').trigger("chosen:updated");
                        );
    

【讨论】:

【参考方案5】:

在我的情况下,我需要在每次更改时更新选定的值,因为当我提交表单时,它总是得到错误的值,并且我使用了多个选择的下拉菜单。 不要更新单个条目,而是更改选择器以更新所有下拉列表。 这可能对某人有帮助

 $(".chosen-select").chosen().change(function () 
    var item = $(this).val();
    $('.chosen-select').trigger('chosen:updated');
);

【讨论】:

【参考方案6】:

如果trigger("chosen:updated"); 不适合您。你可以试试$('#ddl').trigger('change');,就我而言,它对我有用。

【讨论】:

【参考方案7】:

你可以用这个在页面末尾重新加载,也许这个对你有帮助

<script>
  $(".chosen-select").chosen();
</script> 

【讨论】:

以上是关于清除并刷新 jQuery Chosen 下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

Jquery Chosen 插件 - 通过 Ajax 动态填充列表

Jquery Chosen插件 - 由Ajax动态填充列表

jQuery Chosen 插件动态添加选项

使选择的下拉列表只读(未禁用)

如何从 jQuery Chosen 选择下拉菜单中隐藏或删除选项

jquery.chosen.js下拉选择框美化插件项目实例