使用jquery验证插件对多个ckeckboxes数组进行Jquery验证

时间:2014-07-15 05:37:48

标签: jquery

我有一个与jquery validatior插件有关的问题。 我有一个表单,其中所有字段都使用ajax动态加载。所有字段名称和ID动态设置。所以我不能把他们的名字变成jquery。

管理员可以将某些文件验证设置为true或false。现在我的问题是复选框。我将他们的名字设置为数组。此外,我使用漂亮的复选框自定义类来复选框上应用样式。例如:一组chkbox数组名称从:name = chkbox_30 []开始,其他一组复选框数组名称= check-box_25 []

GROUP1:

 <input id="check-box_30" class="pretty_custom req_question" type="checkbox" size="100" onchange="return chk_ckbox(this.id);" data-label="opt2" value="opt2" name="check-box_30[]" style="display: none;"> 
<label for="check-box_30">opt2</label>

    <input id="check-box_30" class="pretty_custom req_question" type="checkbox" size="100" onchange="return chk_ckbox(this.id);" data-label="opt1" checked="checked" value="opt1" name="check-box_30[]" style="display: none;">
    <a class="checked " href="#"></a>
<label for="check-box_30">opt1</label>

第2组:

<input id="check-box_25" class="pretty_custom" type="checkbox" size="100" data-label="1 color" checked="checked" value="1 color" name="check-box_25[]" style="display: none;">
<a class="checked " href="#"></a>
<label for="check-box_25">1 color</label>

<input id="check-box_25" class="pretty_custom" type="checkbox" size="100" data-label="4 color" value="4 color" name="check-box_25[]" style="display: none;">
<a class=" " href="#"></a>
<label for="check-box_25">4 color</label>

<input id="check-box_25" class="pretty_custom" type="checkbox" size="100" data-label="multi color" value="multi color" name="check-box_25[]" style="display: none;">
<a class=" " href="#"></a>
<label for="check-box_25">multi color</label>

对于第1组复选框,需要验证:至少需要选择一个chkbox。 对于第2组,我不需要任何验证。

有人可以帮忙解决这个问题吗? 如何验证它们。我还在'req_question'中添加了一个类,我需要对它们进行验证。

1 个答案:

答案 0 :(得分:0)

试试这个:

function isFormValid()
{
    var requiredCBs = $('.req_question');
    var id = '';
    var flag = false;
    for(var i=0;i<requiredCBs.length; i++)
    {
        var ths = $(requiredCBs[i]);
        var thsId = ths.attr('id');
        if(id == '')
        {
            id = thsId; // For first element
            flag = false;
        }
        else
            if(id == thsId)
            {
                if(!flag) // No checkbox checked for this group
                    if(ths.is(':checked')
                         flag = true;
            }
            else
                if(id != thsId) // New group
                    if(flag)
                    {
                        id = thsId;
                        flag = false;
                    }
                    else
                        return false; // Previous group has no checkbox checked
     }
     return true; // All groups have at least one checkbox checked.
}