1

我正在为jQuery UI MultiSelect-dropdown Widget

使用 Eric Hynds jquery API 我有一个下拉菜单,可以选择工作类别(多选)它会影响包含的 api 脚本。

在每次从下拉列表中选择时,我都会发出一个 jQuery ajax 请求来查找特定类别的工作卷。并再次在下拉列表中显示这些作业卷,以提供 jquery API 的多选效果。但是生成的下拉菜单不会将多个下拉菜单作为第一个下拉菜单生效。我已经完成了所有必要的事情,比如为生成的下拉菜单初始化 API 调用。

这是代码:

$(function(){
    $("#job_locations, #industries, #job_functions, #roll_list").multiselect({
        noneSelectedText: "Select an Option",
            selectedText: "# of # checked"
        }).multiselectfilter();
     }); 

#job_locations, #industries, #job_functions采用 API 的效果,但生成的下拉列表 #roll_list 不会产生这种效果。这个 ids 被赋予<select>标签

在此处输入图像描述

第三个下拉菜单没有显示效果

是否有类似生成的结果不会捕捉已加载脚本的效果?

编辑: 我用来打印 ajax 响应的 php 代码

$select=' <select id="roll_list" name="roll_list[]"   multiple="multiple">';
    foreach($array as $function_name=>$roll_array){
        $select.="<optgroup label='".$function_name."'>";
        foreach($roll_array as $index=>$roll_info){
            $select.="<option value='".$roll_info['role_id']."'>".$roll_info['role_name']."</option>";
                        }
        $select.="</optgroup>";
        }
    $select.="</select>";

    echo $select;

HTML 代码:

<select id="roll_list" name="roll_list[]" class="multi_select_dropdown" multiple="multiple" onchange="dispInventry();" style="width: 400px;">
<optgroup label="Customer Service/ Call Centre/ BPO">
<option value="14">Fresher</option>
<option value="15">Trainee/ Management Trainee</option>
<option value="16">Technical Support Executive ( voice)</option>
<option value="17">Technical Support Representative (Non- v)</option>
<option value="46">External Consultant</option>
</optgroup>
</select>

我做错了什么?如何解决这个问题?如果需要,我可以提供所有必要的代码。
提前感谢

4

1 回答 1

1

制作

function create_mutisilect() {


    $("#job_locations, #industries, #job_functions, #roll_list").multiselect({
        noneSelectedText: "Select an Option",
            selectedText: "# of # checked"
        }).multiselectfilter();
    

}

它是一个单独的函数,位于 document.ready 之外,并且

1.在document.ready中调用它

2.在你的ajax调用之后调用它

$(document).ready(function(){

create_mutisilect();//1


$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);

ceate_mutisilect();//2

  }
});


});
于 2012-07-17T10:24:20.343 回答