Javascript 注意:可以在下拉更改时设置计数
我有3个下拉列表,值为N/A、3、5、6。在更改事件中,如果我更改第一个下拉列表的值,则计数应始终为1,但每当我再次更改时,该值将不断增加。我知道我的计数器出了问题,但我还不知道如何解决它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
$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,否则你想把它除以二。