我开了一家带复选框的商店,但添加价格更改时遇到问题

时间:2019-07-16 11:12:04

标签: javascript html

因此,我制作了一个简单的JavaScript代码,该代码将根据似乎已正常运行的所有复选框更改最终值,然后我应该添加折扣,例如,如果选中了DPF,则EGR应该是免费的(0 €)

我打算添加第二个迷你函数,如果设置了条件,它们只会更改另一个函数的值,但是后来我发现这会带来很多问题。示例:如果I DPF-检查的EGR值= 0,如果有人检查了DPF,然后检查了EGR,然后又未检查了DPF,这将带来很大的问题,他将无缘无故获得EGR,对吗?

    var running_total = 0;
    var calculator = 0;
    var previous = 0;
    function update(feature) {
        // Check
        if(feature.checked == true){
            // Add value to running_total
            running_total += parseInt(feature.value);
            document.getElementById('total').value = running_total + '€';
        }
        // Uncheck
        if(feature.checked == false){
            // Subtract value from running_total
            running_total -= parseInt(feature.value);
            document.getElementById('total').value = running_total + '€';
        }
    }

    function update1(feature) {
        if(feature.checked == true) {
            running_total += parseInt(feature.value) - previous;
            previous = feature.value
            document.getElementById('total').value = running_total + '€';
        }
    }
<div>
        Checksum Request <input id="ChecksumRequest" type="checkbox" value="10" name="" onchange="update(this)">
        Original File Request <input id="OriginalFileRequest" type="checkbox" value="20" name="" onchange="update(this)">
        EGR Off <input id="EGROff" type="checkbox" value="30" name="EGROff" onchange="update(this)">
        DTC Delete<input id="DTCDelete" type="checkbox" value="10" name="" onchange="update(this)">
        Swirl Flaps Off <input id="SwirlFlapsOff" type="checkbox" value="30" name="" onchange="update(this)">
    </div>
    <div>
         stage 1<input id="one" name="stage" type="radio" onchange="update1(this);" value="15">
         stage 2<input id="two" name="stage" type="radio" onchange="update1(this);" value="30">
         stage 3<input id="three" name="stage" type="radio" onchange="update1(this);" value="60">
    </div>
    <div>
         <input id="total" name="total" type="text" value="0€" readonly>
    </div>

因此,我想知道是否有人可以给我一些操作提示,因此我是否必须更改整个代码?还是有更简单的方法,任何帮助都将非常重要,谢谢

Here's a JSFIDDLE

0 个答案:

没有答案