清除并刷新jQuery Chosen下拉列表

时间:2013-11-22 15:13:35

标签: jquery jquery-chosen

我正在尝试清除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);
});

但我不能让它更新下拉列表...... 一些帮助? :)

6 个答案:

答案 0 :(得分:162)

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

  

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

您的代码:

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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");
                        });
    }

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

万一trigger("chosen:updated");对您不起作用。您可以尝试$('#ddl').trigger('change');,因为它对我来说很有用。