J.S不执行所有命令

时间:2013-11-24 05:13:14

标签: javascript html

在下面的代码中,每个“Id”都连接到一个复选框,因此当我检查它时会打印一个单词,如果我取消选中它,该单词就会消失。

function DrawRequest()
{
    if(document.getElementById("name").checked == true)
        document.getElementById("drawrequest").innerHTML="checked";
    else
        document.getElementById("drawrequest").innerHTML="";
    if(document.getElementById("surname").checked == true)
        document.getElementById("drawrequest").innerHTML="checked";
    else
        document.getElementById("drawrequest").innerHTML="";
    if(document.getElementById("age").checked == true)
        document.getElementById("drawrequest").innerHTML="checked";
    else
        document.getElementById("drawrequest").innerHTML="";
}

或者至少那是我尝试代码时应该发生的事情。真正发生的是,当我选中id为“name”的复选框时,没有打印出来。带有id“surname”的复选框也发生了这种情况。但是id为“age”的最后一个复选框工作正常!

还有一个问题:如果选中三个复选框,我会打印三个单词吗? 非常感谢:)

1 个答案:

答案 0 :(得分:0)

无论是否选中,您都会为每个框更新innerHTML。每个ifelse都会覆盖之前的语句设置,使之前的操作无关紧要。

你要么:

  • 在函数开头将innerHTML设置为空白,除去else,并且仅在选中一个框时将HTML设置为“已选中”(如果未选中则不执行任何操作),如果如果选中任何一个框,你想要一个“已检查”的总数;
  • 如果你想为每个盒子“检查”,
  • 会附加到HTML而不是设置它;或
  • 有一个单独的元素来反映每个框的检查。