Clear and refresh jQuery Chosen dropdown list

JqueryJquery Chosen

Jquery Problem Overview


I'm trying to clear jQuery Chosen dropdown list and refresh it.

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>

When I click "Refresh" button, it should turn into this:

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

What I have tried:

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

But I can't get it to update that dropdown list... Some help? :)

Jquery Solutions


Solution 1 - Jquery

Using .trigger("chosen:updated"); you can update the options list after appending.

> Updating Chosen Dynamically: If you need to update the options in your select field and want Chosen to pick up the changes, you'll > need to trigger the "chosen:updated" event on the field. Chosen will > re-build itself based on the updated content.

Your code:

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

Solution 2 - Jquery

If trigger("chosen:updated"); not working, use .trigger("liszt:updated"); of @Nhan Tran it is working fine.

Solution 3 - Jquery

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

Solution 4 - Jquery

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

Solution 5 - Jquery

In my case, I need to update selected value at each change because when I submit form, it always gets wrong values and I used multiple chosen drop downs. Rather than updating single entries, change selector to update all drop downs. This might help someone

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

Solution 6 - Jquery

If in case trigger("chosen:updated"); doesn't works for you. You can try $('#ddl').trigger('change'); as in my case its work for me.

Solution 7 - Jquery

you can use this for reload at the end of page , maybe this one help you

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionplexcellView Question on Stackoverflow
Solution 1 - JqueryPraveenView Answer on Stackoverflow
Solution 2 - Jqueryca michelView Answer on Stackoverflow
Solution 3 - JquerydxpkumarView Answer on Stackoverflow
Solution 4 - Jqueryuser3043330View Answer on Stackoverflow
Solution 5 - JqueryMubashar ShahzadView Answer on Stackoverflow
Solution 6 - JqueryMonkView Answer on Stackoverflow
Solution 7 - JqueryMani RamView Answer on Stackoverflow