javascript - 没有选中所需的复选框

标签 javascript jquery coldfusion

我想要什么:

当我单击“报告”复选框时,它应该选中其下方的所有复选框。我是说 “报告”、“电子邮件组”、“短信组”、“国家组”、“通话结果”下面的所有复选框 如图所示。我认为这就是理想的情况

现在发生了什么:

当我点击“报告”时,只有选中的复选框从 “报告事件”至“报告测试新内容”。什么事也没有发生 “电子邮件组”及其子复选框以及 SMS Group、States Group 的类似情况 并调用结果组。因此,我必须手动单击“电子邮件组”和其他组来选择其子组。

我已经在 jsfiddle 中定义了我正在使用的以下函数这里:

function parentCheckboxCheck(obj, childrenClass, parentId ){
    if(parentId == '' ){
        if($(obj).is(':checked')){
            $(childrenClass).attr('disabled',false);
            $(childrenClass).attr('checked',true);
        }
        else {
            $(childrenClass).attr('checked',false);
            $(childrenClass).attr('disabled',true);
        }

    }else{
        if($(obj).is(':checked') && $('#'+parentId).is(':checked')){
            $(childrenClass).attr('disabled',false);
            $(childrenClass).attr('checked',true);
        }
        else {
            $(childrenClass).attr('checked',false);
            $(childrenClass).attr('disabled',true);
        }
    }
}

JS fiddle 链接:http://jsfiddle.net/VKV7t/1/

请告诉我我在这里做错了什么或者需要进行哪些修改?

这是我的冷融合代码:

<ul class="list_permisstion">

            <cfif listfindNoCase(listAllPermission,Reporting_Title) GT 0>
                <span class="label_permission">
                    <cfset Checked_checkbox = false>
                    <cfif listfindNoCase(checkedAllPermistion,Reporting_Title) GT 0>
                        <cfset Checked_checkbox = true>
                    </cfif> 
                    <cfinput type="checkbox" name="#Reporting_Title#" id="Reporting" onclick = "parentCheckboxCheck(this,'.ReportingChilds', '')" value="#Reporting_Title#" checked="#Checked_checkbox#"> 
                    <label class="label_permission" for="Reporting">#Reporting_Title#</label>
                </span>
            </cfif>

            <ul class="list_permisstion">

                <cfloop array="#Reporting_List#" index="ListLoop" >

                    <cfif listfindNoCase(listAllPermission,ListLoop) GT 0>
                        <li>
                            <cfset Checked_checkbox = false>
                            <cfif listfindNoCase(checkedAllPermistion,ListLoop) GT 0>
                                <cfset Checked_checkbox = true>
                            </cfif>
                            <cfinput type="checkbox" name="#ListLoop#" id="ListLoop" class="ReportingChilds" value="#ListLoop#" checked="#Checked_checkbox#"> 
                            <label for="label_permission">#ListLoop#</label>
                        </li>
                    </cfif>

                </cfloop>


            </ul>
            <!--- For Email Group --->
            <ul class="list_permisstion">

                <cfif listfindNoCase(listAllPermission,Reporting_Group_Title) GT 0>
                    <span class="label_permission"> 
                        <cfset Checked_checkbox = false>
                        <cfif listfindNoCase(checkedAllPermistion,Reporting_Group_Title) GT 0>
                            <cfset Checked_checkbox = true>
                        </cfif> 
                        <cfinput type="checkbox" name="#Reporting_Group_Title#" id="ReportGroup" onclick = "parentCheckboxCheck(this,'.reportGroupChilds','Reporting')" class="reportingChilds" value="#Reporting_Group_Title#" checked="#Checked_checkbox#"> 
                        <label for="ReportGroup">#Reporting_Group_Title#</label> 
                    </span>
                </cfif>

                <cfloop array="#Reporting_Group_List#" index="ListLoop" >

                    <cfif listfindNoCase(listAllPermission,ListLoop) GT 0>
                        <li>
                            <cfset Checked_checkbox = false>
                            <cfif listfindNoCase(checkedAllPermistion,ListLoop) GT 0>
                                <cfset Checked_checkbox = true>
                            </cfif>
                            <cfinput type="checkbox" name="#ListLoop#" id="ListLoop" class="reportGroupChilds" value="#ListLoop#" checked="#Checked_checkbox#"> 
                            <label for="ReportGroup">#ListLoop#</label>
                        </li>
                    </cfif>

                </cfloop>

            </ul>
             <!--- For SMS Group --->
             <ul class="list_permisstion">

                <cfif listfindNoCase(listAllPermission,Reporting_SMS_Group_Title) GT 0>
                    <span class="label_permission"> 
                        <cfset Checked_checkbox = false>
                        <cfif listfindNoCase(checkedAllPermistion,Reporting_SMS_Group_Title) GT 0>
                            <cfset Checked_checkbox = true>
                        </cfif> 
                        <cfinput type="checkbox" name="#Reporting_SMS_Group_Title#" id="ReportSMSGroup" onclick = "parentCheckboxCheck(this,'.reportSMSGroupChilds','Reporting')" class="reportingSMSChilds" value="#Reporting_SMS_Group_Title#" checked="#Checked_checkbox#"> 
                        <label for="ReportSMSGroup">#Reporting_SMS_Group_Title#</label> 
                    </span>
                </cfif>

                <cfloop array="#Reporting_SMSGroup_List#" index="ListLoop" >

                    <cfif listfindNoCase(listAllPermission,ListLoop) GT 0>
                        <li>
                            <cfset Checked_checkbox = false>
                            <cfif listfindNoCase(checkedAllPermistion,ListLoop) GT 0>
                                <cfset Checked_checkbox = true>
                            </cfif>
                            <cfinput type="checkbox" name="#ListLoop#" id="ListLoop" class="reportSMSGroupChilds" value="#ListLoop#" checked="#Checked_checkbox#"> 
                            <label for="ReportSMSGroup">#ListLoop#</label>
                        </li>
                    </cfif>

                </cfloop>

            </ul> 
            <!--- For STATES GROUP --->
            <ul class="list_permisstion">

                <cfif listfindNoCase(listAllPermission,Reporting_States_Group_Title) GT 0>
                    <span class="label_permission"> 
                        <cfset Checked_checkbox = false>
                        <cfif listfindNoCase(checkedAllPermistion,Reporting_States_Group_Title) GT 0>
                            <cfset Checked_checkbox = true>
                        </cfif> 
                        <cfinput type="checkbox" name="#Reporting_States_Group_Title#" id="ReportSTATESGroup" onclick = "parentCheckboxCheck(this,'.reportSTATESGroupChilds','Reporting')" class="reportingSTATESChilds" value="#Reporting_States_Group_Title#" checked="#Checked_checkbox#"> 
                        <label for="ReportSTATESGroup">#Reporting_States_Group_Title#</label> 
                    </span>
                </cfif>

                <cfloop array="#Reporting_StatesGroup_List#" index="ListLoop" >

                    <cfif listfindNoCase(listAllPermission,ListLoop) GT 0>
                        <li>
                            <cfset Checked_checkbox = false>
                            <cfif listfindNoCase(checkedAllPermistion,ListLoop) GT 0>
                                <cfset Checked_checkbox = true>
                            </cfif>
                            <cfinput type="checkbox" name="#ListLoop#" id="ListLoop" class="reportSTATESGroupChilds" value="#ListLoop#" checked="#Checked_checkbox#"> 
                            <label for="ReportSTATESGroup">#ListLoop#</label>
                        </li>
                    </cfif>

                </cfloop>

            </ul>

            <!--- For CALL RESULTS Group --->

            <ul class="list_permisstion">

                <cfif listfindNoCase(listAllPermission,Reporting_CallResults_Group_Title) GT 0>
                    <span class="label_permission"> 
                        <cfset Checked_checkbox = false>
                        <cfif listfindNoCase(checkedAllPermistion,Reporting_CallResults_Group_Title) GT 0>
                            <cfset Checked_checkbox = true>
                        </cfif> 
                        <cfinput type="checkbox" name="#Reporting_CallResults_Group_Title#" id="ReportSTATESGroup" onclick = "parentCheckboxCheck(this,'.reportCALLRESULTSGroupChilds','Reporting')" class="reportingCALLRESULTSChilds" value="#Reporting_CallResults_Group_Title#" checked="#Checked_checkbox#"> 
                        <label for="ReportCALLRESULTSGroup">#Reporting_CallResults_Group_Title#</label> 
                    </span>
                </cfif>

                <cfloop array="#Reporting_CallResultsGroup_List#" index="ListLoop" >

                    <cfif listfindNoCase(listAllPermission,ListLoop) GT 0>
                        <li>
                            <cfset Checked_checkbox = false>
                            <cfif listfindNoCase(checkedAllPermistion,ListLoop) GT 0>
                                <cfset Checked_checkbox = true>
                            </cfif>
                            <cfinput type="checkbox" name="#ListLoop#" id="ListLoop" class="reportCALLRESULTSGroupChilds" value="#ListLoop#" checked="#Checked_checkbox#"> 
                            <label for="ReportCALLRESULTSGroup">#ListLoop#</label>
                        </li>
                    </cfif>

                </cfloop>

            </ul>

</ul> 

最佳答案

您拥有 <ul class="list_permisstion"> block 中的所有复选框。如果我的理解正确的话,您需要选中该 block 中的所有复选框。所以基本上你需要获取该 block 内的所有复选框。 jQuery find() 函数搜索所选元素的后代,在您的情况下将是 <ul class="list_permisstion"> 。检查http://api.jquery.com/find/ .

示例函数如下所示,其中childrenClass是您需要检查的复选框的容器的类名。

function parentCheckboxCheck(obj, childrenClass, parentId ){
        if($(obj).is(':checked')){
            $(childrenClass).find('input[type="checkbox"]').attr('disabled',false);
            $(childrenClass).find('input[type="checkbox"]').attr('checked',true);
        }
        else {
            $(childrenClass).find('input[type="checkbox"]').attr('checked',false);
            $(childrenClass).find('input[type="checkbox"]').attr('disabled',true);
        }
}

关于javascript - 没有选中所需的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21737647/

相关文章:

javascript - 值未显示,即使它位于 HTML 中

javascript - 什么是 JavaScript 中的 Empty 函数,为什么它未定义?

javascript - 改变jquery的Supersized插件的高度和宽度

php - 到 Flex/Flash 后端的 ColdFusion(来自 PHP)?

javascript - 如何在没有路径问题的情况下在母版页 header 中包含 jquery?

javascript - 将对象传回事件 Meteor?

jquery - 如何在文档加载时使用 jquery 在选择框中选择特定项目

javascript - jquery语法错误非法字符

用于解析 "Accept" header 的正则表达式

xslt - 防止 <cite> 标 checkout 现在 RSS Feed 中