-1

为了验证声明,我已确保复选框和数量彼此一致,但我未确保至少选择了一种产品或提供的总数量大于零。我该怎么做?

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>
4

2 回答 2

1

您似乎已经有一个测试来确认任何复选框必须有一个相应的(正)金额,以及第二个测试来确认任何正金额也有一个针对它的检查。

因此,您需要做的就是检查是否选中了某个复选框。

var f = document.form1;
if (f.summer.checked || f.autumn.checked || f.winter.checked) {
    // we're OK!
}
于 2013-02-14T19:33:16.013 回答
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;
}
于 2013-02-14T19:35:52.773 回答