【发布时间】:2019-03-07 06:18:53
【问题描述】:
我正在尝试使用引导 javascript 和 css 文件创建一个多选下拉列表。不幸的是,我动态创建的一组选项(使用 AJAX)似乎没有填充列表。
我知道它一定与多选功能有关,因为当我将其设置为单选下拉菜单时,它工作得很好。
不知道是不是和这个函数的调用时间有关。当文档准备好时,不会调用列表,而是在 ajax 调用成功后调用。
代码如下:
function Participants(sid){
console.log(sid);
$('#participants').empty()
$('#participants').append("<option>Loading......</option>");
$.ajax({
method:"POST",
url:"participants_dropdown.php?sid="+sid,
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(data){
console.log('success')
$('#participants').empty();
$('#participants').append("<option value='0'>---Select Participants---</option>");
$.each(data, function(i, item){
$('#participants').append('<option value="'+data[i].facility_id+'">Call-Sign: '+data[i].call_sign+' - Operator: '+data[i].operator+' - Primary Programming: '+data[i].primary_programming+'</option>');
});
},
complete: function(){
}
});
$('#participants').multiselect('destroy');
$('#participants').multiselect();
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/css/bootstrap-multiselect.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.15/js/bootstrap-multiselect.js"></script>
<div class="col-md-4">
<h3><span>2) Select Market Participants</span></h3>
<select id="participants" multiple class="form-control">
</select>
</div>
<!---sample JSON
[{"operator":"Nexstar Media Group Inc","owner":"Mission Broadcasting Inc","call_sign":"KRBC-TV","facility_id":"306","primary_programming":"NBC"},{"operator":"Nexstar Media Group Inc","owner":"Nexstar Media Group Inc","call_sign":"KTAB-TV","facility_id":"59988","primary_programming":"CBS"},{"operator":"Prime Time Christian Broadcasting Incorporated","owner":"Prime Time Christian Broadcasting Incorporated","call_sign":"KPCB-DT","facility_id":"77452","primary_programming":"REL"},{"operator":"Sinclair Broadcast Group Inc","owner":"Sinclair Broadcast Group Inc","call_sign":"KTXS-TV","facility_id":"308","primary_programming":"ABC"},{"operator":"TEGNA Inc","owner":"TEGNA Inc","call_sign":"KXVA","facility_id":"62293","primary_programming":"FOX"}]--->
任何指导将不胜感激。我尝试了类似帖子中建议的各种解决方案,但没有运气。
【问题讨论】:
-
能否把你在ajax成功中得到的值加进去:console.log(data)?
-
这是我得到的(前两个): 0:call_sign:“KRBC-TV”设施_id:“306”运营商:“Nexstar Media Group Inc”所有者:“Mission Broadcasting Inc”primary_programming : "NBC" proto: 对象 1: call_sign: "KTAB-TV" facility_id: "59988" 运营商: "Nexstar Media Group Inc" 所有者: "Nexstar Media Group Inc" primary_programming: "CBS" proto: Object " 正如我所说,我能够成功填充单个下拉列表,因此可能与多选的工作方式有关。
-
请字符串化:console.log(JSON.stringify(data));
-
添加到原始问题的 json 响应
标签: javascript jquery ajax bootstrap-multiselect