请注意,可以设置下拉更改的计数

时间:2015-11-26 08:05:18

标签: javascript jquery

我有3个下拉列表,其值N/A356。在更改事件时,如果我更改第一次下拉的值,则计数应始终为1,但每当我再次更改时,值将继续增加。我知道我的反击是错的,但没有想到解决它。

$count = 0;
$maxcount = 3;
$arrOfLevel2ElementId.each(function () {
    arrOfLevel2ElementId = $(this).attr('id');
    $("#" + arrOfLevel2ElementId).on('change', function () {
        level2ElementVal = $(this).val();
        if (level2ElementVal == "N/A") {
            if ($count > 0) {
                $count--;
            } else {
                $count;
            }
            showOutput($sum);
            return false;
        } else {
            if ($count <= $maxcount) {
                $count++;
            } else {
                $count;
            }
            alert($count);
            $sum = parseInt(level2ElementVal);
            showOutput($sum);
        }

1 个答案:

答案 0 :(得分:0)

这种情况是因为只要您更改下拉列表,就会调用该函数。

您在此声明if(level2ElementVal == "N/A")减少了点数。

但是在else语句中,意味着您选择了356,您可以检查计数是否不在maxcount。如果$count = 1不是这种情况。然后你增加它。这解释了当你改变价值时它会增加。

我不确定你为什么会有$maxcount,但是如果你要将它改为1,我的假设是你的数量不应超过1。

编辑:

如果我从您的评论中正确理解了您想要设置三个数字,除非它在N/A上。

试试这个小提琴: https://jsfiddle.net/7b21b699/1/

它在最后一个字段更改时设置值字段,并检查该点的值。然后在需要时对它们进行求和并正确划分它们。

$("#box3").on('change', function(){
    var val1 = $("#box1").val();
    var val2 = $("#box2").val();
    var val3 = $("#box3").val();
    var sum = 0;
    var count = 0;

    if(val1 != "N/A"){
        sum += parseInt(val1);
        count++;
    }
    if(val2 != "N/A"){
        sum += parseInt(val2);
        count++;
    }
    if(val3 != "N/A"){
        sum += parseInt(val3);
        count++;
    }

    var result = sum / count;

    $("#value").text(result);

});


<select class="form-control" id="box1" name="a">
    <option value="" selected="selected">Select a value</option>
    <option value="N/A">N/A</option>
    <option value="3">3</option>
    <option value="5">5</option>
    <option value="7">7</option>
    <option value="10">10</option>
</select>
<select class="form-control" id="box2" name="a">
    <option value="" selected="selected">Select a value</option>
    <option value="N/A">N/A</option>
    <option value="3">3</option>
    <option value="5">5</option>
    <option value="7">7</option>
    <option value="10">10</option>
</select>
<select class="form-control" id="box3" name="a">
    <option value="" selected="selected">Select a value</option>
    <option value="N/A">N/A</option>
    <option value="3">3</option>
    <option value="5">5</option>
    <option value="7">7</option>
    <option value="10">10</option>
</select>

<div id ="value">value comes here</div>