需要使用javascript选择至少一个复选框

时间:2012-02-02 15:09:57

标签: javascript

我正在使用这个javascript代码。按下按钮我想要至少选择一个复选框。有谁知道我做错了什么。我不想使用jquery。     

function check()
{
var flag = false;
for(var i=1;i<=4;i++)
{
  var checkb = document.getElementById("check"+i);

  if(checkb.checked)
  {
    flag = true;
    break;
  }
}
if(!flag)
alert("What is your interest \n(select at least one option)");
return flag;
}
</script>

按钮单击代码

<input type="submit" name="submit" value="Submit" onclick="return check();">

2 个答案:

答案 0 :(得分:0)

代码工作正常。您是否在复选框标记上设置了id="check1"

答案 1 :(得分:0)

是的,您的代码工作正常,如上面的评论所述。但是,您可以检查...检查更干净 - 您期望ID为“check0” - “check4”。您可以抓住它们而不用担心设置限制(可能因为您使用的ID中至少有一个不存在而导致代码无效)。

<input type="checkbox" id="check0" />
<input type="checkbox" id="check1" />
<input type="checkbox" id="check2" />
<input type="checkbox" id="check3" />
<hr/>
<input type="button" onclick="checkIt();" value="Check the Checks">

还有一些JS:

checkIt = function()
{
    var checks = document.getElementsByTagName('input');
    var hasCheck = false;  
    for(i in checks)
    {
        // Could also check for a classname here to narrow 
        // your result set.
        if(checks[i].type == 'checkbox')
            hasCheck |= checks[i].checked;
    }

    if(!hasCheck)
        alert('You should check one!');

    return hasCheck;
}