Javascript 添加选择输入菜单的值

Javascript 添加选择输入菜单的值,javascript,Javascript,我很难弄明白这一点。我需要一些帮助,因为我对JavaScript知之甚少 我正在尝试使用多个选择菜单,实时添加选定项目的值,并从固定数字中减去 <form> <section id="extra-features"> <select name="450_1" id="450_1" class="form-control" onchange="updateTotals()" > <option selected="selected"></opt

我很难弄明白这一点。我需要一些帮助,因为我对JavaScript知之甚少

我正在尝试使用多个选择菜单,实时添加选定项目的值,并从固定数字中减去

<form>
<section id="extra-features">
<select name="450_1" id="450_1" class="form-control" onchange="updateTotals()" >
<option selected="selected"></option>
<option value="larry,13">larry</option>
<option value="dex,12">dex</option>
<option value="ryder,18">ryder</option>
</select>
<select name="450_2" id="450_2" class="form-control" onchange="updateTotals()">
<option selected="selected"></option>
<option value="bob,4">bob</option>
<option value="jim,6">jim</option>
<option value="stew,7">stew</option>
</select>
</section>   
</form>
<p id="total"></p>
<p id="balance"></p>
这是我的javascript

function updateTotals() {
var inputs = document.getElementById('extra-features').getElementsByTagName('select');

var sum = 0;
var bsum = 2000000;
for (var i = 0, num = inputs.length; i < num; i++) {
    if (inputs[i].change) {
        sum += parseInt(inputs[i].getAttribute('value').split(",")[1]);
        bsum -= parseInt(inputs[i].getAttribute('value').split(",")[1]);
    }
}

document.getElementById('total').innerHTML = sum;
document.getElementById('balance').innerHTML = bsum;
}

var section = document.getElementById('extra-features');
var inputs = section.getElementsByTagName('select');

for (var i = 0, num = inputs.length; i < num; i++) {
inputs[i].addEventListener('change', updateTotals);
}
这是我的小提琴

你有一些问题:

首先,不需要在HTML和JavaScript中分别添加两次更改侦听器

其次,输入[i]。更改是未定义的,因此您的总和和bsum永远不会更改。我不确定这是想实现什么,但这是没有必要的。我将ifinputs[I].value放在这里,以检查是否已选择某个值。如果没有此选项,并且其中一个选项没有值,则在计算sum和bsum时,将得到NaN

第三,getAttribute'value'返回null。您可以使用.value获取值


这是一把有效的小提琴:

你的问题是什么?它不起作用。我的问题是我做错了什么。为什么要将更改事件绑定到selects上两次?你是指getElementById和getElementsByTagName吗?如果是,因为我尝试了不同的东西这就是你想要的?谢谢你的帮助。
function updateTotals() {
    var inputs = document.getElementById('extra-features').getElementsByTagName('select');

    var sum = 0;
    var bsum = 2000000;
    for (var i = 0, num = inputs.length; i < num; i++) {
        if(inputs[i].value) {
            sum += parseInt(inputs[i].value.split(",")[1]);
            bsum -= parseInt(inputs[i].value.split(",")[1]);
        }
    }

    document.getElementById('total').innerHTML = sum;
    document.getElementById('balance').innerHTML = bsum;
}