我不明白为什么我的代码无法正常工作,有人可以检查一下吗?我是新手(JavaScript)

时间:2018-09-21 10:39:41

标签: javascript html function checkbox

这是脚本:

<script>
var a,b,c;
a = document.getElementById("myCheck1");
b = document.getElementById("myCheck2");
c = document.getElementById("myCheck3");

仅当另一个是注释时,此功能才起作用:

function check() { 
if (a.checked == true)
document.getElementById("a").innerHTML="a true";
else
document.getElementById("a").innerHTML="a false";

if (b.checked == true)
document.getElementById("b").innerHTML="b true";
else
document.getElementById("b").innerHTML="b false";

if (c.checked == true)
document.getElementById("c").innerHTML="c true";
else
document.getElementById("c").innerHTML="c false";
}

此功能不起作用,使另一个功能不起作用:

function clickOnB() {
if (a.checked == true || c.checked == true)
a.checked = false;
c.checked = false;
else
b.checked = true;
}
</script>

这是身体:

Checkbox1: <input type="checkbox" id="myCheck1" value="a"/>
Checkbox2: <input type="checkbox" id="myCheck2" onclick="clickOnB() " 
value="b"/>
Checkbox3: <input type="checkbox" id="myCheck3" value="c"/>
<p id="a"></p>
<p id="b"></p>
<p id="c"></p>
<button type="button" onclick="check()" />

我不明白为什么我的代码不起作用,有人可以检查一下吗?我很新(JavaScript)

1 个答案:

答案 0 :(得分:2)

您的函数中存在语法问题:

function clickOnB() {
    if (a.checked == true || c.checked == true)
        a.checked = false;
    c.checked = false; //Not in the if because of missing brackets
    else //Syntax error
    b.checked = true;
}

应该是

function clickOnB() {
    if (a.checked == true || c.checked == true) {
        a.checked = false;
        c.checked = false;
    } else {
        b.checked = true;
    }
}

如果未在if条件上指定方括号,则在if条件为true的情况下,将仅评估以下命令(直到下一个分号)。在这种情况下,由于要执行多个命令,因此需要使用方括号。