循环选择多个选择列表并计算每个选项的选择次数

时间:2016-02-05 11:37:53

标签: javascript php jquery

我正在处理的网站的一部分涉及创建相同选择的重复实例 - 选项。我想计算每个选项被选中的次数,然后将该数字存储为变量,然后可以将其发送到php电子邮件功能。

例如 - 如果选择“Infallid”3次 - 我得到infallid = 3,其他为0。

JS小提琴演示如何运作 - https://jsfiddle.net/scx4shnd/2/

MINUS

1 个答案:

答案 0 :(得分:2)

您可以使用以下逻辑来计算选择选项的次数:

$("button").click(function(){
    var dishkoMap = {};
    $("select[name='diskho'] > option:selected").each(function () {
        var value = this.value;
        if (dishkoMap[value]) { // if value already exists then increase it by 1
            dishkoMap[value] += 1;
        } else {
            dishkoMap[value] = 1;
        }
    });
    // dishkoMap is a dictionary object so you won't see anything in alert.
    // open the browser console and you can see the counts corresponding
    // to each selected option
    console.log(dishkoMap);

});

同样,您也可以为SpishällBlandare撰写。

我建议编写一个函数,在其中传递select的名称,然后返回countMap。

function getCountMap(name) {
    var countMap = {};
    $("select[name='" + name + "'] > option:selected").each(function () {
        var value = this.value;
        if (countMap[value]) { // if value already exists then increase it by 1
            countMap[value] += 1;
        } else {
            countMap[value] = 1;
        }
    });
    return countMap;
}

然后将其用作:

var dishkoMap = getCountMap('dishko');
var spishallMap = getCountMap('spishall');
// etc.