0

在我的 php 项目中,我有一个多选下拉菜单,我正在使用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>标签),它打开一个添加新伙伴的模式。现在我想在使用模态添加新伙伴时更新多选下拉列表,并且在模态关闭时调用一个函数,如下所示,

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".

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

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

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

如何更新列表?

4

1 回答 1

1

如果您正在使用此库,则刷新列表的方法是

$select.append($opt).multipleSelect("refresh");
于 2016-01-05T07:03:20.660 回答