jquery多选列表更新失败

时间:2016-01-05 02:54:14

标签: javascript php jquery jquery-multiselect

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

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");

如何更新列表?

1 个答案:

答案 0 :(得分:1)

如果您使用的是jsfiddle,则刷新列表的方式是

$( document ).ready(function() {

var node = d3.select('g');
var addchild = node.append("circle")
            .attr("cx",320)
            .attr("cy",210)
            .attr("r",10)
            .attr("class","addchild")
            .style("fill","none")
            .style("stroke","#444");

            addchild.on("click", function() {
                alert("on click");
            });; 

});