2013-02-14 95 views
-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> 
+0

我们可以看到HTML吗? – 2013-02-14 19:29:44

+0

我假设第一个'if'块应该是检查'summer.checked'而不是'ch1.checked'? – Alnitak 2013-02-14 19:36:52

+0

对不起,我的错误 – user2073133 2013-02-14 19:40:40

回答

1

你似乎已经有一个测试,以确认任何检查框必须有一个相应的(积极)的量,并进行第二次测试,以确认任何正量也有一个检查它。

因此,您所需要做的就是检查是否有复选框被选中。

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

谢谢。有人告诉我,我的复选框和数量是一致的,但它不能确保至少选择了一种产品,或者提供了大于零的总数量 – user2073133 2013-02-14 19:39:49

+0

@ user2073133肯定,因此,此_additional_测试可确保至少一个已被选中。您的原始测试(在此之前完成)完成剩余的测试。 – Alnitak 2013-02-14 19:41:59

+0

谢谢Alnitak。我已经写出了数量的正则表达式,每个(夏季,秋季,冬季)他们可以订购的最大数量为500。表达式是 - var chkquantity = ^([1-9]?\ d | [1-4] \ d {2} | 500)$/ – user2073133 2013-02-15 17:08:44

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; 
}