3

I am using SumoSelect. I have an array of values to be selected.

var physicianIds = [10,11,12,13];

This is the html:

<select class="form-control SumoUnder" id="PhysicianID" multiple="multiple" name="CycleDetails.ProcedureRoomPhysicianIds">
    <option value="1">MD01</option>
    <option value="10">MD10</option>
    <option value="11">MD11</option>
    <option value="12">MD12</option>
    <option value="13">MD13</option>
    <option value="14">MD14</option>
    <option value="15">MD15</option>
    <option value="16">MD16</option>
    <option value="17">MD17</option>
    <option value="18">MD18</option>
    <option disabled="disabled" value="19">MD19</option>
    <option value="2">MD02</option>
    <option disabled="disabled" value="20">MD20</option>
    <option value="3">MD03</option>
    <option value="4">MD04</option>
    <option value="5">MD05</option>
    <option value="6">MD06</option>
    <option value="7">MD07</option>
    <option value="8">MD08</option>
    <option value="9">MD09</option>
</select>

My js:

$(document).ready(function () {
    $('#PhysicianID').SumoSelect();

    for (var i = 0; i < window.physicianIds.length; i++) {
        var physicianId = window.physicianIds[i];
        $('#PhysicianID')[0].sumo.selectItem(physicianId);
    }
});

According to SumoSelect documentation, I would expect the following to be selected:

MD10, MD11, MD12, and MD13

However, only MD02 and MD03 are being selected -- what am I missing here?

Nimeshka Srimal
  • 8,012
  • 5
  • 42
  • 57
ragerory
  • 1,360
  • 1
  • 8
  • 27

1 Answers1

1

According to documentation you have to use string to select an item by value. integer selects items by index.

$('#PhysicianID').SumoSelect();

var physicianIds = [10, 11, 12, 13];
for (var j = 0; j < physicianIds.length; j++) {
  var physicianId = physicianIds[j].toString();  
  $('#PhysicianID')[0].sumo.selectItem(physicianId);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.0.2/jquery.sumoselect.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jquery.sumoselect/3.0.2/sumoselect.min.css" rel="stylesheet"/>

<select class="form-control SumoUnder" id="PhysicianID" multiple="multiple" name="CycleDetails.ProcedureRoomPhysicianIds">
  <option value="1">MD01</option>
  <option value="10">MD10</option>
  <option value="11">MD11</option>
  <option value="12">MD12</option>
  <option value="13">MD13</option>
  <option value="14">MD14</option>
  <option value="15">MD15</option>
  <option value="16">MD16</option>
  <option value="17">MD17</option>
  <option value="18">MD18</option>
  <option disabled="disabled" value="19">MD19</option>
  <option value="2">MD02</option>
  <option disabled="disabled" value="20">MD20</option>
  <option value="3">MD03</option>
  <option value="4">MD04</option>
  <option value="5">MD05</option>
  <option value="6">MD06</option>
  <option value="7">MD07</option>
  <option value="8">MD08</option>
  <option value="9">MD09</option>
</select>
Ibrahim Khan
  • 20,616
  • 7
  • 42
  • 55
  • Arg. You're right -- I tried a different approach when investigating that and completely overlooked the string part. They're pretty similar. Thank you. – ragerory Jan 20 '18 at 00:02