如何克服javascript中未定义的错误

如何克服javascript中未定义的错误,javascript,Javascript,这是我的密码。你也可以在网站上找到它 值1 价值2 附加 减法 乘法 分部 Javascript代码: <script> var op; function changeCheckBox(val) { try { var i; var max = document.myform.check.length; var count =

这是我的密码。你也可以在网站上找到它


值1
价值2
附加
减法
乘法
分部

Javascript代码:

<script>
        var op;
        function changeCheckBox(val) {
            try {
                var i;
                var max = document.myform.check.length;
                var count = 0;
                op = val;

                for (i = 0; i < max; i++) {
                    if (document.myform.check[i].checked === true) {
                        count++;
                        serNoChecked = i;
                    }
                }
                if (count === 1) {
                    for (i = 0; i < max; i++) {
                        if (document.myform.check[i].checked === false) {
                            document.myform.check[i].disabled = true;
                        }
                    }
                } else if (count === 0) {
                    for (i = 0; i < max; i++) {
                        document.myform.check[i].disabled = false;
                    }
                }

                if (null === max) return false;
                if (count === 0) {
                    return true;
                } else if (count > 0) {
                    return false;
                }
            } catch (e) {
                alert(e.message);
            }
        }

        function arith() {
            var n1 = parseInt(document.getElementById('num1').value, 10);
            var n2 = parseInt(document.getElementById('num2').value, 10);
             var newVal1;
             var newVal2;
             var newVal3;
             var newVal4;

            if (op == "Addition") {
                newVal1 = n1 + n2;
            } else if (op == "Subtraction") {
                newVal2 = n1 - n2;
            } else if (op == "Multiplication") {
                newVal3 = n1 * n2;
            } else if (op == "Division") {
                newVal4 = n1 / n2;
            }

            var demoP = document.getElementById("demo");
            {
                var html = "";
                html += "Addition =" + newVal1 + "<br/>";
                html += "Subtraction =" + newVal2 + "<br/>";
                html += "Multiplication =" + newVal3 + "<br/>";
                html += "Division =" + newVal4 + "<br/>";
                demoP.innerHTML = html;
            }
            return false;
        }
 </script>

var-op;
函数更改复选框(val){
试一试{
var i;
var max=document.myform.check.length;
var计数=0;
op=val;
对于(i=0;i0){
返回false;
}
}捕获(e){
警报(e.message);
}
}
函数arith(){
var n1=parseInt(document.getElementById('num1')。值,10);
var n2=parseInt(document.getElementById('num2')。值,10);
var newVal1;
var newVal2;
var newVal3;
var newVal4;
如果(op==“加法”){
newVal1=n1+n2;
}否则如果(op==“减法”){
newVal2=n1-n2;
}else if(op==“乘法”){
newVal3=n1*n2;
}否则如果(op==“除法”){
newVal4=n1/n2;
}
var demo=document.getElementById(“demo”);
{
var html=“”;
html+=“Addition=“+newVal1+”
; html+=“减法=“+newVal2+”
; html+=“乘法=“+newVal3+”
”; html+=“Division=“+newVal4+”
; deop.innerHTML=html; } 返回false; }
在运行它时,我得到了所有四个操作的未定义错误。
如果用户输入两个值并单击所有复选框,则应显示与算术运算对应的所有输出。如何做到这一点?

您没有在代码中的任何地方调用
changeCheckBox
,因此,
op
永远不会被设置。也许您想要为每个复选框设置
onchange=“changeCheckBox(this.value);”
(通过此更改,您的代码似乎可以按预期工作)


值1
价值2
附加
减法
乘法
分部

希望这有帮助。

代码就在那里……如果有人回答时只带到JSFIDLE的链接,那么这是一个错误的答案,应该删除。检查我的答案,我总是在JS FIDLE演示中提供代码,给我一个没有代码的答案。。。为什么我们强调代码共享?因为如果明天链接失效,您的问题将对所有投票赞成搁置此问题的访问者没有用处:在这样做之前,本可以给一个人多一点时间来改进此问题。@DineshKumar作为我之前评论的后续内容:也许您的意思是使用
onchange=“changeCheckBox(this.value);”
是否针对每个复选框?通过此更改,您的代码似乎可以按预期工作。谢谢您。现在我发现了问题所在。但它没有显示四个输出。显示任何人输出。如何解决它?@DineshKumar不确定“显示任何人输出…”是什么意思。本地测试,并在表单下方显示四行:“加法=未定义的减法=5…”。不要忘记在我提供的代码中加入

<script>
        var op;
        function changeCheckBox(val) {
            try {
                var i;
                var max = document.myform.check.length;
                var count = 0;
                op = val;

                for (i = 0; i < max; i++) {
                    if (document.myform.check[i].checked === true) {
                        count++;
                        serNoChecked = i;
                    }
                }
                if (count === 1) {
                    for (i = 0; i < max; i++) {
                        if (document.myform.check[i].checked === false) {
                            document.myform.check[i].disabled = true;
                        }
                    }
                } else if (count === 0) {
                    for (i = 0; i < max; i++) {
                        document.myform.check[i].disabled = false;
                    }
                }

                if (null === max) return false;
                if (count === 0) {
                    return true;
                } else if (count > 0) {
                    return false;
                }
            } catch (e) {
                alert(e.message);
            }
        }

        function arith() {
            var n1 = parseInt(document.getElementById('num1').value, 10);
            var n2 = parseInt(document.getElementById('num2').value, 10);
             var newVal1;
             var newVal2;
             var newVal3;
             var newVal4;

            if (op == "Addition") {
                newVal1 = n1 + n2;
            } else if (op == "Subtraction") {
                newVal2 = n1 - n2;
            } else if (op == "Multiplication") {
                newVal3 = n1 * n2;
            } else if (op == "Division") {
                newVal4 = n1 / n2;
            }

            var demoP = document.getElementById("demo");
            {
                var html = "";
                html += "Addition =" + newVal1 + "<br/>";
                html += "Subtraction =" + newVal2 + "<br/>";
                html += "Multiplication =" + newVal3 + "<br/>";
                html += "Division =" + newVal4 + "<br/>";
                demoP.innerHTML = html;
            }
            return false;
        }
 </script>
<form name="myform" method="post" onsubmit="return arith()">
    <center><table>
        <tr><td><font face="verdana,arial" size=-1>Value 1 </font></td><td><input type = "text" id = "num1"></td></tr>
        <tr><td><font face="verdana,arial" size=-1>Value 2 </font></td><td><input type = "text" id = "num2"></td></tr>
        <tr><td><font face="verdana,arial" size=-1></font></td><td><input type="checkbox" name="check" value="Addition" id="check1" onchange="changeCheckBox(this.value);" />Addition</td></tr>
        <tr><td><font face="verdana,arial" size=-1></font></td><td><input type="checkbox" name="check" value="Subtraction" id="check2" onchange="changeCheckBox(this.value);" />Subtraction</td></tr>
        <tr><td><font face="verdana,arial" size=-1></font></td><td><input type="checkbox" name="check" value="Multiplication" id="check3" onchange="changeCheckBox(this.value);" />Multiplication</td></tr>
        <tr><td><font face="verdana,arial" size=-1></font></td><td><input type="checkbox" name="check" value="Division" id="check4" onchange="changeCheckBox(this.value);" />Division</td></tr>
        <tr><td><font face="verdana,arial" size=-1></font></td><td><font face="verdana,arial" size=-1><input type = "submit" value = "Submit"></font></td></tr>
    </table></center>
</form>