Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 注意:可以在下拉更改时设置计数_Javascript_Jquery - Fatal编程技术网

Javascript 注意:可以在下拉更改时设置计数

Javascript 注意:可以在下拉更改时设置计数,javascript,jquery,Javascript,Jquery,我有3个下拉列表,值为N/A、3、5、6。在更改事件中,如果我更改第一个下拉列表的值,则计数应始终为1,但每当我再次更改时,该值将不断增加。我知道我的计数器出了问题,但我还不知道如何解决它 $count = 0; $maxcount = 3; $arrOfLevel2ElementId.each(function () { arrOfLevel2ElementId = $(this).attr('id'); $("#" + arrOfLevel2ElementId).on('ch

我有3个下拉列表,值为N/A、3、5、6。在更改事件中,如果我更改第一个下拉列表的值,则计数应始终为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);
        }

这种情况是因为只要更改下拉列表,就可以调用函数

在这里,如果evel2elementval==N/A,则减少计数

但在else语句中,即选择3、5或6,检查计数是否不在最大计数。如果$count=1,则情况并非如此。然后你增加它。这解释了当您更改值时,它会增加

我不知道为什么您有$maxcount,但如果您将其更改为1,我的假设是您的计数不应超过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>

你对这个问题的描述没有真正意义。你能给我们举一个关于这个问题的例子吗?至少看到你的HTML会有帮助。JsFiddle或它没有发生:-实际上我必须将下拉列表中所选的值相加,然后除以它们的计数,但如果它是N/A,我的计数将不会增加。要理解你试图实现的目标有点困难。也许你可以把你的问题扩大一点。你调用的函数在小提琴上是不可用的,但从我看到的情况来看,你试图把三个选择的数字分开,除非其中一个是N/a,否则你想把它除以二。