我正在使用Bootstrap Multiselect,这是我在HTML中的设置:
<div class="form-group">
<select class="form-control" id="bldg_type" multiple="multiple">{% for type in buildings %}
<option value="{{type.bldg_type}}">{{type.bldg_type}}</option>{% endfor %}
</select>
</div>
我想使用我的查询的选定值,即我的Ajax代码的片段:
$.ajax({
url: "cnt_bldg/",
type: "GET",
dataType: "JSON",
data: {
'brgy_id': brgy_id,
'bldg_type': $('#bldg_type option:selected').val()
},
...
$('#bldg_type option:selected').val()
的问题是我只能获得1个值。对于例如我在我的选择选项中检查了Market
和Police Station
,并在我的控制台中查看了http://127.0.0.1:8000/cnt_bldg/?brgy_id=All&bldg_type=Market".
它只获得了Market
。
如何获取所有值并将其用于查询?
顺便说一下,我正在使用Django。我已经阅读了this answer,但我不知道如何在上面的AJAX代码中使用结果。
答案 0 :(得分:12)
$('#bldg_type').val()
它适用于我的bootstrap-multiselect。
答案 1 :(得分:3)
<div class="form-group">
<select id="multiselect1" class="form-control" id="bldg_type" multiple="multiple">{% for type in buildings %}
<option value="{{type.bldg_type}}">{{type.bldg_type}}</option>{% endfor %}
</select>
</div>
将Id multiselect
添加到您的选择控件。
在您的javascript中全局声明变量,如下所示:
var selected = [];
将其初始化为 [来自您提供的答案链接]
$('#multiselect1').multiselect({
selectAllValue: 'multiselect-all',
onChange: function(element, checked) {
var brands = $('#multiselect1 option:selected');
$(brands).each(function(index, brand){
selected.push([$(this).val()]);
});
}
});
通过你的ajax发送。
$.ajax({
url: "cnt_bldg/",
type: "GET",
dataType: "JSON",
data: {
'brgy_id': brgy_id,
'bldg_type': selected //This will send the values as list of strings
},
...
注意 - 在操作接收到的值时,请将其作为服务器方法中的字符串列表接受!!
答案 2 :(得分:3)
获取multiselect选项的值非常简单。
$('#bldg_type').multiselect({
onChange: function(){
var selectedOptions = $('#bldg_type').val();
console.log(selectedOptions);
}})
selectedOptions应该为您提供所选选项的列表。它提供了从select标签中的选项中选择的所有值。
您可以在全局范围内定义selectedOptions变量,以便ajax调用可以访问它。
祝你好运,希望有所帮助
答案 3 :(得分:2)
HTML
<div class="form-group">
<select id="multiselect1" class="form-control" id="bldg_type" multiple="multiple">{% for type in buildings %}
<option value="{{type.bldg_type}}">{{type.bldg_type}}</option>{% endfor %}
</select>
</div>
Jquery的
var selected = $('#multiselect1').val()