使用JavaScript检测表单中何时选中多个复选框

使用JavaScript检测表单中何时选中多个复选框,javascript,forms,browser,Javascript,Forms,Browser,我对此非常恼火,我有一个蹩脚的函数可以工作,但不兼容所有浏览器: javascript代码: function KeepCount() { var NewCount = 0; if (document.FormName.iphone3g1.checked) {NewCount = NewCount + 1;} if (document.FormName.iphone3g2.checked) {N

我对此非常恼火,我有一个蹩脚的函数可以工作,但不兼容所有浏览器:

javascript代码:

        function KeepCount() {

        var NewCount = 0;

        if (document.FormName.iphone3g1.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g2.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g3.checked)
        {NewCount = NewCount + 1;}

        if (document.FormName.iphone3g4.checked)
        {NewCount = NewCount + 1;}

        if (NewCount == 2){
            valor.value  = total.value - (total.value*20/100);}

        if (NewCount <= 1){
            valor.value = 0;
        }

        }
函数KeepCount(){
var NewCount=0;
if(document.FormName.iphone3g1.checked)
{NewCount=NewCount+1;}
如果(document.FormName.iphone3g2.checked)
{NewCount=NewCount+1;}
如果(document.FormName.iphone3g3.checked)
{NewCount=NewCount+1;}
如果(document.FormName.iphone3g4.checked)
{NewCount=NewCount+1;}
如果(NewCount==2){
valor.value=total.value-(total.value*20/100);}

如果(NewCount如果您使用jquery,您可以执行以下操作

 if($('#productDiv input:checked').length >= 2) ...
这样,您就不必手动对每个复选框进行编码。而是将它们全部包装在某个div中,或者给它们一些唯一的css类,在这种情况下,您可以使用
$('input.myProduct:checked')
,并且很容易获得计数。(顺便说一句,您可能希望
NewCount>=2
,而不是
=


正如@John Weldon所说,如果您想在浏览器中显示此客户端,可以计算此客户端,但您必须在收到订单后验证服务器端的所有价格是否正确,否则我可以给自己100%的折扣,等等。

我不会用javascript计算和提供折扣。这是一个非常大的错误ver-side函数不是客户端函数。(通过一些创造性的客户端操作,我可以给自己什么样的折扣?)如果这是针对电子商务网站或涉及真实货币的网站,那么完全在客户端处理这种折扣/价格逻辑是一个非常糟糕的主意。也就是说,您可能也在服务器端执行一些验证,这将是强烈推荐的。
javascript:valor.value=-15;//发送给我$15!
这与您之前的欠条问题?杰西·科恩,我不能投票(不知道为什么)但是我测试了你的解决方案,效果很好,所以,非常感谢。关于客户端折扣,这只是一个数字,我们将通过查看客户选择的复选框来检查客户想要什么产品,然后我们将自己计算折扣。非常感谢,我喜欢StackoverFlow:D
 if($('#productDiv input:checked').length >= 2) ...