我使用Flask作为我的应用程序的框架。我有两个带有复选框的下拉列表,其ID为“nodes-select”,并且将填充从数据库中获取的值。第二个列表有静态名称。在页面加载时,我必须选择两个列表中的所有复选框。第一个下拉(nodes-select)工作正常。但第二次下拉不是选择任何复选框。我试过这段代码。纠正我错在哪里?
HTML
<body onload = onLoading()>
<select id="nodes-select" multiple="multiple">
</select>
<select id="filter-select" multiple="multiple" >
</select>
</body>
的Javascript
<script type="text/javascript">
$('#nodes-select').change(function(){
console.log("Atleast nodes...");
if($("#nodes-select option[value='-1']").is(':selected'))
{
console.log("node...");
$('#nodes-select option').prop('selected', true);
$("#nodes-select option[value='-1']").prop('selected', false);
}
$('#nodes-select').multiselect('refresh');
});
$('#filter-select').change(function(){
console.log("Atleast filter...");
if($("#filter-select option[value='-1']").is(':selected'))
{
console.log("filter ...");
$('#filter-select option').prop('selected', true);
$("#filter-select option[value='-1']").prop('selected', false);
}
$('#filter-select').multiselect('refresh');
});
function onLoading()
{
alert("Page Loaded");
$.get("/nodes",function(data,status)
{
var tmp = data.output;
console.log("**"+tmp);
$('#nodes-select').append($('<option>', {
value: -1,
text : "All"
}));
for(var i =0;i<tmp.length;i++)
{
console.log(tmp[i]);
$('#nodes-select').append($('<option>', {
value: i,
text : tmp[i]
}));
}
$('#nodes-select').multiselect('rebuild');
$('#nodes-select option').prop('selected', true);
$("#nodes-select option[value='-1']").prop('selected', false);
$('#nodes-select').multiselect('refresh');
$('#filter-select').append($('<option>', {
value: -1,
text : "All"
}));
console.log("&&") ;
var temp = ["MAC","SUBLBL","VRF","IFHNDL","COMP_ID","V4_ADDR","V6_ADDR"];
for(var i =0;i<temp.length;i++)
{
console.log(temp[i]);
$('#filter-select').append($('<option>', {
value: i,
text : temp[i]
}));
}
$('#filter-select').multiselect('rebuild');
$('#filter-select').prop('selected', true);
$("#filter-select option[value='-1']").prop('selected', false);
$('#filter-select').multiselect('refresh');
});
}
</script>
答案 0 :(得分:0)
看起来您忘记查询#filter-select。
的实际选项更改此行:
$('#filter-select').prop('selected', true);
为:
$('#filter-select option').prop('selected', true);