javascript - Why can't I set a multiple select dropdown with this code? -


opts array ["1","2"]. select options not selected. dropdown bootstrap multiselection plugin. missing here?

var data = {}; data.action = "get-form-data"; data["account-id"] = localstorage.getitem("account-id"); ajax('post', 'php/enablers.php', data, formdatasuccess); function formdatasuccess(data) {     data = json.parse(data);     $("#min-rating").val(data.minrating);     debugger;     var opts = data.acceptedmedia.split(",");     $.each(opts, function(inx,val){         $('#accepted-media option[value=' + val + ']').attr('selected', true);             })     $("#special-instructions").val(data.specialinstructions); } 

html

<html lang="en">     <head>         <title>writer's tryst - enablers form</title>         <link type="text/css" href="css/enablers.css" rel="stylesheet" />         <link rel="stylesheet" href="css/bootstrap-multiselect.css">         <link rel="stylesheet" href="css/jquery.rateyo.min.css">         <style>             select {                 padding-bottom: 8px;             }         </style>     </head>     <body>         <div class="container center_div">             <img id="img-enablers" src="#" alt="images" />             <form id = "form-enablers"  class="form-horizontal well">                 <h1>enablers</h1>                               <p>                     <label for="form-type" class="fixed50">form:</label>                     <select id="form-type" name="form-type[]" class="btn  btn-outline" multiple="multiple" required>                     </select>                 </p>                 <p>                     <label for="genres" class="fixed50">genres:</label>                     <select id="genres" name="genres[]" multiple="multiple" required>                     </select><br/>                 </p>                 <p>for explanation of genres shown here, see <a target="_blank" href="https://en.wikipedia.org/wiki/list_of_genres">list of genres</a><br/></p>                 <p>                     <label for="accepted-media" class="fixed50">accepted media:</label>                     <select id="accepted-media" name="accepted-media[]" multiple="multiple" required>                         <option value='1'>mail</option>                         <option value='2'>pdf file</option>                     </select><br/>                 </p>                     <label for="min-rating" class="fixed50">minimum rating:</label>                     <div id="min-rating"></div>                 <p> <label for="special-instructions" class="fixed50">special instructions:</label>                     <textarea id ="special-instructions" name="special-instructions"></textarea>                 </p>                 <p class="thumbnail">for limited time, enablers can use site <span style="color: #f00; font-weight:bold">free</span>. reserve right change policy without notice.</p>                 <p id="recaptcha-elements"></p>                 <div class="form-group">                         <button type="submit" id="enablers-search" class="btn btn-success btn-lg btn-block glyphicon glyphicon-search"> search</button>                 </div>                 <input id="userid" name="userid" type="hidden" />             </form>         </div>         <form id="writers-list">             <p id="manuscript-request">to request manuscript, click checkbox beneath thumbs-up icon.</p>             <div id="table-list"></div>             <div id="main" class="content"></div>          </form>         <script src="js/bootstrap-multiselect.js"></script>         <script src="js/jquery.rateyo.js"></script>         <script src="js/enablers.js"></script>         <script src="js/recaptcha.js"></script>     </body>                            </html> 

since val() of <select multiple> array... simpler set <select> value instead of looping options

$('#accepted-media').val(opts)

demo