如何检查所有四个多选项是否都选择了某个值?

时间:2014-12-04 09:45:03

标签: javascript jquery

我有4个多选项,这是通过这种方式动态创建的

var drp_nt = $('<select />', {
                              'id'     : 'drp_' + nt,
                              'name'   : 'drp_' + nt+'[]',
                              'multiple': true});

var drp_cnt = $('<select />', {
                              'id'     : 'drp_' + cnt,
                              'name'   : 'drp_' + cnt+'[]',
                              'multiple': true});

var drp_ctg = $('<select />', {
                              'id'     : 'drp_' + ctg,
                              'name'   : 'drp_' + ctg+'[]',
                              'multiple': true});

var drp_api = $('<select />', {
                              'id'     : 'drp_' + api,
                              'name'   : 'drp_' + api+'[]',
                              'multiple': true});

现在我想创建一个名为

的函数
function check_selection()
{
-----------------
-----------------
}

将包含用于检查所有多选项是否都选择了任何数据的代码。

此外,如何通过使用来自所有4个多选下拉列表的事件来调用此函数(因为只要从任何多选中选择任何选项,就会触发此函数)

我为multiselect尝试了onchange事件,但它没有调用该函数。

1 个答案:

答案 0 :(得分:1)

使用change event选中是否使用过滤器()

选中所有选择框
$("select").change(function () {

    var selectedBox = $("select").filter(function () {
        return this.value != "";
    });
    if (selectedBox.length == 4) {
        alert("4 ckecked")
    }

});

对于动态元素

$(document).on("change", "select[id^=drp_]", function(){
       var selectedBox = $("select").filter(function () {
            return this.value != "";
        });
        if (selectedBox.length == 4) {
            alert("4 ckecked")
        }

    });

<强> DEMO