【问题标题】:JavaScript html forms calculator not workingJavaScript html表单计算器不起作用
【发布时间】:2013-08-23 17:50:30
【问题描述】:

我正在尝试为投影仪屏幕制作一个简单的周长计算器。

代码应从单选按钮输入和对角线长度中获取响应,以相应地计算周长。

这是我的自动取款机代码:

<html>

    <body>
        <script language="javascript">
            function calc() {
                var form = document.forms.Calculator;
                var A = Number(getSelectedValue(form.elements.A));
                var B = Number(getSelectedValue(form.elements.B));


                if (A = 0) {
                    L = 0.8;
                    H = 0.6;
                } else if (A = 1) {
                    L = 0.872;
                    H = 0.49;
                } else {
                    L = 0.922;
                    H = 0.386;
                }

                form.elements.Total.value = 2 * B * (L + H);

            }

            function getSelectedValue(flds) {
                var i = 0;
                var len = flds.length;

                while (i < len) {
                    if (flds[i].checked) {
                        return flds[i].value;
                    }
                    i++;
                }

                return "";
            }
        </script>
        <title>Calculator</title>   <pre>
    <form name="Calculator">
        <label>A</label> 
            4:3: <input name="A" type="radio" onChange="calc()" value="0" checked>
            16:9: <input name="A" type="radio" onChange="calc()" value="1">
            2.39:1: <input name="A" type="radio" onChange="calc()" value="2">
        <label>B</label>
            Screen Size: <input name="B" type="text" onChange="calc()" checked>
        <label>Total</label> 
            <input type="text" name="Total" onChange="calc()" readonly size="10"><br> 
        <input type="submit" value="Submit Calculation"> <input type="reset" value="Clear"> 
    </form>
    </pre>

    </body>

</html>

【问题讨论】:

  • 我建议先删除&lt;pre&gt; 标签。
  • 它到底在做什么导致它无法正常工作?

标签: javascript html forms calculator


【解决方案1】:

你的函数getSelectedValue 是错误的。它循环遍历一组元素以查看检查了哪个元素。您正在尝试对 B 执行相同的操作,这只是一个元素,因此不会通过循环并因此返回 ''

所以不是

var B = Number(getSelectedValue(form.elements.B));

试试

var B = Number(form.elements.B.value);

另外,你的 if else 语句是错误的。应该是== 而不是=

if (A == 0) {
    L = 0.8;
    H = 0.6;
} else if (A == 1) {
    L = 0.872;
    H = 0.49;
} else {
    L = 0.922;
    H = 0.386;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-17
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多