Это тот случай, поскольку, как только вы меняете выпадающий список, вы вызываете функцию.
Здесь вы сообщаете, что if(level2ElementVal == "N/A")
вы уменьшаете количество.
Но в заявлении else, означающем, что вы выбираете 3
, 5
или 6
, вы проверяете, нет ли счетчика в maxcount. Это не так, если $count = 1
. Затем вы увеличиваете его. Это объясняет, что он увеличивается при изменении значения.
Я не знаю, почему у вас есть $maxcount
, но если бы вы изменить его на 1, мое предположение, что ваш счетчик не должен превышать 1.
EDIT:
Если то, что я вы правильно поняли из своих комментариев, что хотите убрать три номера, если только на 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>
Ваше описание проблемы на самом деле не имеет смысла. Не могли бы вы показать нам рабочий пример проблемы в http://jsfiddle.net? По крайней мере, увидеть ваш HTML поможет. –
JsFiddle или этого не произошло :-) –