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

时间:2011-02-24 18:37:47

标签: javascript forms browser

我对此感到疯狂,我有一个蹩脚的功能,但与所有浏览器不兼容:

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

        }

html部分:

<input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g1" value="50.00"> Vidro Partido<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g2" value="59.00"> LCD Danificado<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g3" value="80.00"> Substituir capa traseira<br />
    <input onclick="clickCh(this);return KeepCount();" type="checkbox" name="iphone3g4" value="38.00"> Botão Volume

嗯,这适用于使用chrome和firefox的光盘,但我还是不太喜欢这些代码。

我知道这里有很多专家,有人可以帮助我吗?我会非常感激

1 个答案:

答案 0 :(得分:1)

如果您使用jquery,您可以执行类似

的操作
 if($('#productDiv input:checked').length >= 2) ...

这样你就没有手动编码每个复选框。而是将它们全部包装在某个div中,或者给它们一些独特的css类,在这种情况下,你可以选择$('input.myProduct:checked'),并且很容易得到计数。(顺便说一下,你可能想要NewCount >= 2,不是==

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