使用javascript验证复选框选择

时间:2012-11-06 06:53:48

标签: javascript validation checkbox

我需要帮助编写我需要执行的自定义函数。

概念很简单我向客户提供了大约20种产品的列表,然后我要求他们使用复选框从整个列表中选择5种产品。

虽然他们确实选择了产品,但它需要更新隐藏的输入,以便我能够将其插入我的数据库中。

我们可以从这样的事情开始:http://jsfiddle.net/9mxh5/但它只需要工作,所以我只能选择一些复选框。

以下是我们可以使用的一些代码

<input type="checkbox" name="products" value="product1" onChange="javascript:updateProducts();"/>
<input type="checkbox" name="products" value="product2" onChange="javascript:updateProducts();"/>
<input type="checkbox" name="products" value="product3" onChange="javascript:updateProducts();"/>
<input type="checkbox" name="products" value="product4" onChange="javascript:updateProducts();"/>

<!-- Hidden -->
<input type="hidden" name="myFiveProducts" value="THELIST" />

我在那里使用了jsfiddle,并按照我的意愿进行调整:http://jsfiddle.net/ENxnK/15/

提前帮助你。

2 个答案:

答案 0 :(得分:0)

我给了条件3.您可以将其更改为5,我认为您可以自己分配隐藏变量。如果我不能让我知道。我会更新它

<script type="text/javascript">
var i=0;
    function updateProducts(myid)
{

    if(document.getElementById(myid).checked==true)
    {i=i+1;

    if(i==3)
    {
    document.getElementById("products1").disabled="disabled";
    document.getElementById("products2").disabled="disabled";
    document.getElementById("products3").disabled="disabled";
    document.getElementById("products4").disabled="disabled";
    }
    }
    else
    i=i-1;
}
</script>
    <div id="mydiv">
<input type="checkbox" id="products1" value="product1" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products2" value="product2" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products3" value="product3" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products4" value="product4" onChange="javascript:updateProducts(this.id);"/>
</div>

答案 1 :(得分:0)

@polin

我找到了一种方法来做我想做的事,但这并不是很好看。

我正在使用Class来确定哪一个被检查而不是。然后我只确定它什么时候没有禁用它的类。

只需要更好的代码:D

javascript

var i = 0;
function updateProducts(myid)
{

    if(document.getElementById(myid).checked == true)
    {
        // Add a class to the element
        document.getElementById(myid).className = "classCheck";

        i = i + 1;

        // If I got my maximum
        if(i == 3)
        {
            if(!$('#products1').hasClass('classCheck'))
            {
                document.getElementById("products1").disabled="disabled";
            }
            if(!$('#products2').hasClass('classCheck'))
            {
                document.getElementById("products12").disabled="disabled";
            }
            if(!$('#products3').hasClass('classCheck'))
            {
                document.getElementById("products3").disabled="disabled";
            }
            if(!$('#products4').hasClass('classCheck'))
            {
                document.getElementById("products4").disabled="disabled";
            }
        }   
    }
    else
    {
        document.getElementById(myid).className = "";
        i = i - 1;

        // If I'm not at the maximum
        if(i < 3)
        {
            // I can switch them all enable
            $('#products1').removeAttr('disabled');
            $('#products2').removeAttr('disabled');
            $('#products3').removeAttr('disabled');
            $('#products4').removeAttr('disabled');
        }
    }
}

HTML

<div id="mydiv">
<input type="checkbox" id="products1" value="product1" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products2" value="product2" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products3" value="product3" onChange="javascript:updateProducts(this.id);"/>
<input type="checkbox" id="products4" value="product4" onChange="javascript:updateProducts(this.id);"/>
</div>