jquery多选列表更新失败

jquery multiple select list update failed

本文关键字:更新 失败 列表 jquery      更新时间:2023-09-26

在我的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>

这里我有一个PLUS按钮(<a>标签),它打开一个添加新伙伴的模式。现在,当使用modal添加新伙伴时,我想更新多选下拉列表,当modal关闭时,我调用一个函数,如下所示,

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"

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

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

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

如何更新列表?

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

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