JavaScript - 使用“已选中/未选中复选框”作为“IF ELSE条件语句”

时间:2015-09-15 15:14:10

标签: javascript checkbox

现在我想使用“check / unchecked checkbox”作为“IF条件语句”。

示例:我想根据您点击的音符制作和弦分析器。当你选中复选框上的一个音符(或一些音符),然后按下这些复选框下面的按钮,段落元素应该告诉你你击中了什么和弦。但是我在if ("error")声明中写错了。如何解决?

这是我的代码:

<!doctype html>
<html>
   <head>
      <script>
       function fungsi() {

         var c = document.getElementById("C").checked;
         var e = document.getElementById("E").checked;
         var f = document.getElementById("F").checked;
         var g = document.getElementById("G").checked;

         if (c.checked = true &&
           e.checked = true &&
           g.checked = true &&
           f.checked = false) {
           document.getElementById("chord").innerHTML = "C Chord";
         } else if (c.checked = true &&
           f.checked = true &&
           g.checked = false &&
           e.checked = false) {
           document.getElementById("chord").innerHTML = "F Chord";
         } else {
           alert("Under Development!");
         }
       }
      </script>
   </head>
   <body>
      <form>
         Note(s) That You Hit:<br>
         <input type=checkbox id="C">C<br>
         <input type=checkbox id="E">E<br>
         <input type=checkbox id="F">F<br>
         <input type=checkbox id="G">G
      </form>
      <button type=button onclick="fungsi()">The Chord Is</button>
      <p id="chord"></p>
   </body>
</html>

1 个答案:

答案 0 :(得分:2)

if (c.checked=true)和类似的应该只是if (c.checked)

if (f.checked=false)和类似的应该只是if (!f.checked)

如果您愿意,可以if (c.checked==true)if (c.checked===true),同样if (f.checked==false)if (f.checked===false),但绝大部分时间都没有意义。你已经一个布尔值。只需if (c.checked)if (!f.checked)即可。

E.g:

if (c.checked &&
    e.checked &&
    g.checked &&
    !f.checked) {
    document.getElementById("chord").innerHTML = "C Chord";
}

另外,作为crclayton points out,您要么:

var c=document.getElementById("C").checked;
var d=document.getElementById("E").checked;
// ...and so on..., and then:
if (c && e && g && !f)

var c=document.getElementById("C"); // <== No .checked
var d=document.getElementById("E"); // <==
// ...and so on..., and then:
if (c.checked &&
    e.checked &&
    g.checked &&
    !f.checked) {