复选框 - 选中至少一个框已被选中

时间:2013-02-14 19:23:15

标签: javascript checkbox

要验证声明,我确保复选框和数量彼此一致,但我没有确定至少选择了一个产品或者提供的总数量大于零。我该怎么做?

if (((document.form1.summer.checked) && (summer2012 <= 0)) ||
    ((document.form1.autumn.checked) && (autumn2012 <= 0)) ||
    ((document.form1.winter.checked) && (winter2012 <= 0))) 
{
    alertmsg = alertmsg + "Please enter Quantity" + "\n";
}
else if (((!document.form1.summer.checked) && (summer2012 > 0)) ||
    ((!document.form1.autumn.checked) && (autumn2012 > 0)) ||
    ((!document.form1.winter.checked) && (winter2012 > 0))) 
{
    alertmsg = alertmsg + "Please choose Product" + "\n";

}

HTML:

<tr>
    <td align="right">Summer 2012</td>
    <td>
        <input type="checkbox" name="summer" value="Summer 2012" />
    </td>
    <td align="center" width="69">
        <div align="right">20.00</div>
    </td>
    <td width="216">
        <input name="summer2012" type="text" size="5" value="0" />
    </td>
</tr>
<tr>
    <td align="right">Autumn 2012</td>
    <td>
        <input type="checkbox" name="autumn" value="Autumn 2012" />
    </td>
    <td align="center" width="69">
        <div align="right">20.00</div>
    </td>
    <td>
        <input name="autumn2012" type="text" size="5" value="0" />
    </td>
</tr>
<tr>
    <td align="right">Winter 2012</td>
    <td>
        <input type="checkbox" name="winter" value="Winter 2012" />
    </td>
    <td align="center" width="69">
        <div align="right">20.00</div>
    </td>
    <td>
        <input name="winter2012" type="text" size="5" value="0" />
    </td>
</tr>

2 个答案:

答案 0 :(得分:1)

您似乎已经进行了测试,以确认对于任何复选框都必须有相应的(正数)金额,并进行第二次测试以确认任何正数金额还有对其进行检查。

因此,您需要检查是否选中了 some 复选框。

var f = document.form1;
if (f.summer.checked || f.autumn.checked || f.winter.checked) {
    // we're OK!
}

答案 1 :(得分:0)

我将检查是否已选中任何复选框:

var checkboxElements = [
    document.form1.ch1,
    document.form1.autumn,
    document.form1.winter,
    document.form1.summer
];

function anyChecked(checkboxElements) {
    for(var i = 0; i < checkboxElements.length; i++)
        if(checkboxElements[i].checked)
            return true;
    return false;
}