提问者:小点点

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


我有一个isuue与jquery验证插件。我有一个表单,其中所有字段都是使用Ajax动态加载的。所有字段的名称和ID都是动态设置的。所以我无法将他们的名字输入jQuery。

管理员可以将某些文件验证所需的设置为true或false。现在我的问题是复选框。我把他们的名字放入数组。另外,我正在使用pretty-checkbox自定义类在checkbox上应用样式。For ex:一组chkbox数组名称从:name=chkbox_30[]开始,另一组checkbox数组name=check-box_25[]

组1:

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

第二组:

<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 required。对于第2组,我不需要任何验证。

有谁能帮助解决这个问题吗?如何验证它们。我还为'req_question'添加了一个类,我需要对它们进行验证。


共1个答案

匿名用户

试试看:

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