如何使用Bootstrap Multiselect获取所有选定的值并在AJAX中使用它

时间:2015-04-20 03:18:37

标签: jquery ajax twitter-bootstrap bootstrap-multiselect

我正在使用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个值。对于例如我在我的选择选项中检查了MarketPolice Station,并在我的控制台中查看了http://127.0.0.1:8000/cnt_bldg/?brgy_id=All&bldg_type=Market".它只获得了Market

如何获取所有值并将其用于查询?

顺便说一下,我正在使用Django。我已经阅读了this answer,但我不知道如何在上面的AJAX代码中使用结果。

4 个答案:

答案 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()