-1

ステートメントを検証するために、チェックボックスと数量が互いに一致していることを確認しましたが、少なくとも 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

チェックボックスに対応する(正の)金額が存在する必要があることを確認するテストと、正の金額にもそれに対するチェックがあることを確認する2番目のテストが既にあるようです。

したがって、いくつかのチェックボックスがチェックされていることを確認するだけです。

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 に答える