I Love Stackoverflow
I Love Stackoverflow

Reputation: 6868

Set values in jquery multiselect dropdown

I want to set the multiple ITEMS in jQuery multiselect dropdown depending on the VALUE of that item, which I'm getting from database, separated by ",".

I'm saving this fetched data in hidden field.

Ex.

Hidden field: hdnLots = 64,65 , Items for lot No.: 64 = Lot 1, 65 = Lot2

So when I get the hdnLot=65, then in jQuery Multiselect dropdown only Lot2 needed to be selected. And same for 64,65. i.e. When multiple values are selected than all those values needed to seleted.

I've tried: JQuery multiselect - Set a value as selected in the multiselect dropdown

Code I've wrote for this is:

if ($("#<%= btnUpdateProject.ClientId %>").css('display') == "inline-block") 
{
   debugger;
   var dataarray = document.getElementById('<%= hdnLots.ClientId %>').value.split(",");
   $("#<%= ddlNoOfLots.clientid %>").val(dataarray);
}

Upvotes: 11

Views: 87900

Answers (3)

Dharmang
Dharmang

Reputation: 3028

I hope this will help you:

Demo

$(document).ready(function() {
$("select").multiselect({
   selectedText: "# of # selected"
});
var hidValue = $("#hidSelectedOptions").val();
alert(hidValue);
var selectedOptions = hidValue.split(",");
for(var i in selectedOptions) {
    var optionVal = selectedOptions[i];
    $("select").find("option[value="+optionVal+"]").prop("selected", "selected");
}
$("select").multiselect('reload');
});

EDIT

refresh has been removed from latest jQuery-MultiSelect. Using reload will solve the question now.

Upvotes: 21

Subha
Subha

Reputation: 313

var selectedOptions = hidValue.split(",");
typeof (selectedOptions != 'undefined' && $("#hidSelectedOptions").multiselect('select', selectedOptions));

Upvotes: 5

Yatin
Yatin

Reputation: 1198

The one thing you would need to ensure is that the values in the array are strings:

<select id='multipleSelect' multiple='multiple'>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
</select>
<script type='text/javascript'>
    $('#multipleSelect').val(['1', '2']);
</script>

Check my Fiddle: https://jsfiddle.net/luthrayatin/jaLygLzo/

Upvotes: 7

Related Questions