Javascript 复选框输入保持选中状态?

Javascript 复选框输入保持选中状态?,javascript,html,Javascript,Html,我是HTML新手,我正在尝试使用HTML和Javascript制作一个邮资计算器,如果用户想要快递,用户可以输入包裹的名称和重量。所有选项都会影响价格,但由于某种原因,我的可变快递成本一直停留在5英镑 <!DOCTYPE html> <html> <head> <title>Postage Calculator</title> <script> function calCost() { consol

我是HTML新手,我正在尝试使用HTML和Javascript制作一个邮资计算器,如果用户想要快递,用户可以输入包裹的名称和重量。所有选项都会影响价格,但由于某种原因,我的可变快递成本一直停留在5英镑

<!DOCTYPE html>
<html>
<head>
<title>Postage Calculator</title>
 <script>
    function calCost() {
        console.log("Invoked calCost()")
        document.getElementById('displayName').innerHTML = document.getElementById("name").value;
        var expressCost = 0;
        if (document.getElementById('express').checked) ; //always checked 
        {
            console.log("yup"); // this was to test if it was staying checked which it does.
            expressCost = 5;
        }
        if (document.getElementById('r1').checked) {
            document.getElementById('displayCost').innerHTML = "\u00A3" + (2 * document.getElementById("weight").value + expressCost);
        }
        else if (document.getElementById('r2').checked) {
            document.getElementById('displayCost').innerHTML = "\u00A3" + (10 * document.getElementById("weight").value + expressCost);
        }

        else {
            document.getElementById('displayCost').innerHTML = "\u00A3" + (5 * document.getElementById("weight").value + expressCost);
        }
    }
</script>


<label> Enter your name <input type = "text" name="name" id="name"></label><br>
 <br>
 <label> Enter weight  <input type = "text" name="weight" id ="weight"></label> Kilograms<br>
 <br>
 <label>Do you want express delivery?<input type="checkbox" name="express" id="express"></label> Additional 5 Pounds <br>
 <br>
 <input type="radio" id="r1" name="rate" value="United Kingdom" checked="checked"> United Kingdom - 2 per Kilo<br>
 <input type="radio" id="r2" name="rate" value="United States"> United States - 10 per Kilo<br>
 <input type="radio" id="r3" name="rate" value="Europe">  Europe - 5 per Kilo <br>
这是计算总成本的javascript,我已经测试过启动程序并提交,即使没有检查,也会立即将5英镑添加到总成本中,我不知道

还注意到我的变量是变量初始值设定项是多余的

if (document.getElementById('express').checked) ; //always checked 
那条线把你烦死了。它包含;,它创建了一个块作用域,下一个{}总是简单地执行


编辑:使用javascript过梁可以避免此类问题,并与您的样式和缩进保持一致。

您可以添加所有HTML吗?正如Nick所说,请创建一个新的HTML。编辑:是的,只要去掉那个分号就行了。这似乎已经修复了它,但我真的不明白那个分号是如何导致这样一个错误的,我不是总是需要像java那样用分号来完成每一行吗?我写了同样的答案,并对C语言做了一些解释,但在包括javascript在内的大多数语言中都是如此