jquery 多个 select 列表更新失败

jquery multiple select list update failed

在我的 php 项目中,我有多个 select 下拉菜单,我正在使用 jquery.multiple.select.js

我的观点是

<div class="form-outer box">
  <div class="span12 ">
    <label>Partner</label>
    <select class="span9 check_select " name="partner[]" id="partner" multiple="multiple" >
      <!--<option value="-1">Select</option>-->
      <?php foreach ($member as $memberpart) : ?>
         <option  value="<?php echo $memberpart->members_id; ?>">
           <?php echo $memberpart->members_first_name; ?>
         </option>
      <?php endforeach; ?>                                
    </select>
    <a href="#paradd" class="btn" role="button" onclick="clear_message()" data-toggle="modal">
      <i class="icon-plus pull-right" style="margin-top:5px;"></i> 
    </a>
  </div>
</div>

这里我有一个加号按钮(<a> 标签),它打开一个模式来添加新的合作伙伴。现在我想在使用模态添加新合作伙伴时更新多个 select 下拉菜单,并在模态关闭时调用一个函数,如下所示,

function bulid_select_box(select_box,path,doselect){ 
    var base_url  = $("meta[name=baseurl]").attr("content");
    $.ajax({
        url: base_url + path,
        success: function(data) {
            var json = jQuery.parseJSON(data);
            $(select_box).find('option').remove();
            $(select_box).append('<option value="-1">Select</option>');   
            var setselect = '';
            if(doselect){
                setselect = 'selected';
            }
            for(var i=0; i < json.length; i++){                                        
                if((json.length -1)== i){
                    $(select_box).append('<option ' + setselect  + ' value="' + json[i].value  + '">' + json[i].option  + '</option>'); 
                }else{
                    $(select_box).append('<option value="' + json[i].value  + '">' + json[i].option  + '</option>');              
                }
            }                
            $(select_box).trigger("chosen:updated");               
            $(select_box).data('chosen').activate_action();                 
            bulid_select_trigger(select_box);               
        }            
    }); 
}

使用这个时,新值不会插入到列表中,但是当我检查 <select> 标签中显示的值时,它的样式是 display="none".

实际列表显示在带有 class=ms-drop<li> 标签的 <div> 中。

我认为列表在使用时没有更新

  $(select_box).trigger("chosen:updated");

如何更新列表?

如果您使用this library刷新列表的方式是

$select.append($opt).multipleSelect("refresh");