如何以订单形式执行if语句

问题描述 投票:0回答:1

我正在构建一个简单的订单表格,其中包含一些带有数字和隐藏字段(用于电子邮件和自动回复)的计算。

[当用户输入字段不是'0'时,我希望它计算总价格中的交货成本。在下面的脚本中,即使用户字段不是“ 0”,“交付成本”也始终返回“ 0”。

如果将值更改为某个值,即使用户字段为'0',它也总是返回该值。因此,如果某种原因,IF是错误的。

/* Get the values from the user*/
function getAantal() {
    var AantalBoek = document.getElementById('AantalBoek').value;
    var AantalCD = document.getElementById('AantalCD').value;
    var AantalSoundtrack = document.getElementById('AantalSoundtrack').value;

    /* Product variables*/
    var PrijsBoek = document.getElementById('PrijsBoek').value;
    var PrijsCD = document.getElementById('PrijsCD').value;
    var PrijsSoundtrack = document.getElementById('PrijsSoundtrack').value;

    /* Delivery variables, Soundtrack does not have delivery*/
    /* in my logic the IF says: if user fills in 0 for AantalBoek, 
    then VerzendingBoek is 0 instead of 7. But it always returns 0, even if AantalBoek is 1*/
    var VerzendingBoek = document.getElementById('VerzendingBoek').value;
    if (AantalBoek !== null && AantalBoek !== '') {
        VerzendingBoek = 0;
    }

    var VerzendingCD = document.getElementById('VerzendingCD').value;
    if (AantalCD !== null && AantalCD !== '') {
        VerzendingCD = 0;
    }

    /* Calculation of the Product total*/
    var SubTotaalBoek = PrijsBoek * AantalBoek;
    var SubTotaalCD = PrijsCD * AantalCD;
    var SubTotaalSoundtrack = PrijsSoundtrack * AantalSoundtrack;

    /* Calculation of the Delivery total*/
    var TotaalVerzending = +VerzendingBoek + +VerzendingCD;

    /* Calculation of the Final total*/
    var Totaal = +SubTotaalBoek + +SubTotaalCD + +SubTotaalSoundtrack + +TotaalVerzending;

    document.getElementById('Verzending').value = TotaalVerzending;
    document.getElementById('TotaalPrijs').value = Totaal;
}
<!-- user defines values here: -->
<input type="number" id="AantalBoek" required="" onchange="getAantal()">
<input type="number" id="AantalCD" required="" onchange="getAantal()">
<input type="number" id="AantalSoundtrack" required="" onchange="getAantal()">

<!--  set values for the products: -->
<input type="hidden" id="PrijsBoek" name="PrijsBoek" value="15">
<input type="hidden" id="PrijsCD" name="PrijsCD" value="4">
<input type="hidden" id="PrijsSoundtrack" name="PrijsSoundtrack" value="2">

<!-- set values for the delivery cost: -->
<input type="hidden" id="VerzendingBoek" name="VerzendingBoek" value="7">
<input type="hidden" id="VerzendingCD" name="VerzendingCD" value="2">

<!-- totals are shown here (only for autorespond) -->
<input type="hidden" id="Verzending" name="Verzending">
<input type="hidden" id="TotaalPrijs" name="TotaalPrijs">
javascript forms if-statement null
1个回答
0
投票

确定,我重新开始,再次查看if语句,发现语法错误,更改了条件并添加了else语句。

更正的脚本是这个:

function getAantal(){
var AantalBoek = document.getElementById('AantalBoek').value;
var AantalCD = document.getElementById('AantalCD').value;
var AantalSoundtrack = document.getElementById('AantalSoundtrack').value;

var PrijsBoek = document.getElementById('PrijsBoek').value;
var PrijsCD = document.getElementById('PrijsCD').value;
var PrijsSoundtrack = document.getElementById('PrijsSoundtrack').value;

var VerzendingBoek = document.getElementById('VerzendingBoek').value; 
/* Here I changed the condition: IF the user value is 0 then the delivery cost is 0, 
ELSE use the value that was already defined:*/
if(AantalBoek == 0) { VerzendingBoek = 0;
} else {VerzendingBoek = document.getElementById('VerzendingBoek').value;
}
var VerzendingCD = document.getElementById('VerzendingCD').value;
if(AantalCD == 0) { VerzendingCD = 0;
} else {VerzendingCD = document.getElementById('VerzendingCD').value;
}
/*for the second condition i corrected the syntax error !== to !=, 
IF delivery cost for Boek is not 0, then delivery cost for CD is 0*/
if (VerzendingBoek != 0) { VerzendingCD = 0;
}

var SubTotaalBoek = PrijsBoek * AantalBoek;
var SubTotaalCD = PrijsCD * AantalCD;
var SubTotaalSoundtrack = PrijsSoundtrack * AantalSoundtrack;

var TotaalVerzending = +VerzendingBoek + +VerzendingCD;

var Totaal = +SubTotaalBoek + +SubTotaalCD + +SubTotaalSoundtrack + +TotaalVerzending;

document.getElementById('Verzending').value=TotaalVerzending;
document.getElementById('TotaalPrijs').value=Totaal;
}
© www.soinside.com 2019 - 2024. All rights reserved.