【问题标题】:JavaScript - Using "checked/unchecked checkbox" as "IF ELSE condition statement"JavaScript - 使用“选中/未选中复选框”作为“IF ELSE 条件语句”
【发布时间】:2017-05-30 01:57:59
【问题描述】:

现在我想使用“选中/未选中复选框”作为“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>

【问题讨论】:

  • = 是赋值,你希望 == 来测试是否相等
  • 另外,您似乎在var c=document.getElementById("C").checked 这一行中获得了checked 属性,然后在c.checked 再次尝试获取c 的checked 属性。你只需要这样做一次。
  • 谢谢!!所以我只是将其更改为 >> if (c==true && g==true..等等).. 它有效! :D
  • 编码风格是个人选择,但我可以建议上面的风格非常难以阅读和编辑。我建议改用任何常见的样式。无论您在自己的代码中做什么,在寻求帮助时,请使用jsbeautifier.org 或类似方式将您的代码转换为其他人熟悉的阅读方式。
  • 谢谢!我会用的! :D

标签: javascript checkbox


【解决方案1】:

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) 就足够了。

例如:

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) {

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2020-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多