Do I have to iterate through ALL the and set remove the \'selected\' attribute or is there a better way?
In order to clear all selection, I am using like this and its working fine for me. here is the script:
$("#ddlMultiselect").multiselect("clearSelection");
$("#ddlMultiselect").multiselect( 'refresh' );
You can pass an empty array to unselect all the selection. Here goes an example. From documentation
val()
allows you to pass an array of element values. This is useful when working on a jQuery object containing elements like , , and s inside of a . In this case, the inputs and the options having a value that matches one of the elements of the array will be checked or selected while those having a value that doesn't match one of the elements of the array will be unchecked or unselected, depending on the type.
$('.clearAll').on('click', function() {
$('.dropdown').val([]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="dropdown" multiple>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<button class='clearAll'>Clear All Selection</button>
$("#ddlMultiselect").val('').trigger("change");
for multi-select drop-down, it will clear displayed text.
Assuming you are using Bootstrap multiselect dropdown by David Stutz
$('#selectId').multiselect('deselectAll', false);
But for some reason it does not work inside initialization method
Simply find all the selected <option>
tags within your <select>
and remove the selected
attribute:
$("#my_select option:selected").removeAttr("selected");
As of jQuery 1.6, you should use .prop
instead of removing the attribute:
$("#my_select option:selected").prop("selected", false);
Shortest and quickest way to remove all the selection, is by passing empty string in jQuery .val() function :
$("#my_select").val('')