`
yinlongfei
  • 浏览: 155412 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery操作JSF中的Checkbox树

    博客分类:
  • JSF
阅读更多
jQuery操作JSF中的Checkbox树
下面的代码是,当选中父节点,则子节点全选;选中任意一个子节点,则选中父节点


jQuery.noConflict();//与JSF搭配需要这句话,不然会有冲突
        jQuery(document).ready(function() {
        // Add click event listener to each checkbox in the tree page
        // Note! Using this simple selector assumes that there are no other
        // checkboxes on the page, if there are other checkboxes then
        // selector should be changed   
            jQuery(":checkbox").click(function(){
                updateChildren(this);
                updateParent(this);
             });
        });
        </script>
        <script type="text/javascript">
        function updateChildren(currentCheckBox)
        {
            // Get state of current checkbox (true or false)
            var state = currentCheckBox.checked;
           
            // Get parent TABLE, where current checkbox is places
            var parentTables = jQuery(currentCheckBox).parents("table");
            var parentTable = parentTables[0];   
       
            // Get DIV where child nodes with checkboxes are situated
            // See http://docs.jquery.com/Traversing/ to get better uderstanding of
            // parents() and next()       
            var childDivs = jQuery(parentTable).next("div");   
            if(    childDivs.length > 0 )
            {
                var childDiv = childDivs[0];       
           
                // Iterate over all child nodes checkboxes and set same state as the
                // current checkbox state
                jQuery(childDiv).contents().find(":checkbox").each(function() {
                    this.checked = state;
                });
            }

        }
       
        //更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个选中,则父节点也选中
        function updateParent(currentCheckbox) {
            var parentDivs = jQuery(currentCheckbox).parents("div");
            var parentDiv = parentDivs[0];   

            var hasSelected = false;
           
            jQuery(parentDiv).contents().find(":checkbox").each(function() {
                if(this.checked) {
                    hasSelected = true;
                }
            });
           
            var parentTables = jQuery(parentDiv).prev("table");
            if(parentTables.length > 0)
            {
                var parentTable = parentTables[0];
           
                var parentCheckboxes = jQuery(parentTable).find(":checkbox");
                var parentCheckbox = parentCheckboxes[0];
               
                parentCheckbox.checked = hasSelected ;
            }

        }
下面的代码是,当选中父节点,则子节点全选;选中所有子节点,则选中父节点
jQuery.noConflict();//与JSF搭配需要这句话,不然会有冲突
        jQuery(document).ready(function() {
        // Add click event listener to each checkbox in the tree page
        // Note! Using this simple selector assumes that there are no other
        // checkboxes on the page, if there are other checkboxes then
        // selector should be changed   
            jQuery(":checkbox").click(function(){
                updateChildren(this);
                updateParent(this);
             });
        });
        </script>
        <script type="text/javascript">
        function updateChildren(currentCheckBox)
        {
            // Get state of current checkbox (true or false)
            var state = currentCheckBox.checked;
           
            // Get parent TABLE, where current checkbox is places
            var parentTables = jQuery(currentCheckBox).parents("table");
            var parentTable = parentTables[0];   
       
            // Get DIV where child nodes with checkboxes are situated
            // See http://docs.jquery.com/Traversing/ to get better uderstanding of
            // parents() and next()       
            var childDivs = jQuery(parentTable).next("div");   
            if(    childDivs.length > 0 )
            {
                var childDiv = childDivs[0];       
           
                // Iterate over all child nodes checkboxes and set same state as the
                // current checkbox state
                jQuery(childDiv).contents().find(":checkbox").each(function() {
                    this.checked = state;
                });
            }

        }
       
        //更新父节点的方法,如果子节点全部选中则父节点选中,如果子节点中有一个未选中,则父节点也未选中
        function updateParent(currentCheckbox) {
            var parentDivs = jQuery(currentCheckbox).parents("div");
            var parentDiv = parentDivs[0];   

            var hasSelected = true;
           
            jQuery(parentDiv).contents().find(":checkbox").each(function() {
                if(!this.checked) {
                    hasSelected = false;
                }
            });
           
            var parentTables = jQuery(parentDiv).prev("table");
            if(parentTables.length > 0)
            {
                var parentTable = parentTables[0];
           
                var parentCheckboxes = jQuery(parentTable).find(":checkbox");
                var parentCheckbox = parentCheckboxes[0];
               
                parentCheckbox.checked = hasSelected ;
            }

        }


声明:此文章从 http://www.blogjava.net/TiGERTiAN/archive/2009/12/27/307463.html
转载过来的
分享到:
评论
2 楼 gw861125 2010-08-05  
好东西
1 楼 gw861125 2010-08-05  
ffff

相关推荐

    Hibernate\dom4j\jquery\jsf\spring API

    标题中的“Hibernate\dom4j\jquery\jsf\spring API”揭示了这个压缩包包含的是与Java开发相关的几个重要框架和库的API文档。这些技术在IT领域中扮演着核心角色,尤其对于Java Web应用开发来说至关重要。下面将分别...

    jsf组件树相关资料

    在JSF生命周期中,组件树扮演着至关重要的角色,处理用户的请求、数据绑定以及渲染响应。 **JSF组件树的构造** JSF组件树是基于XML的Facelets模板构建的,每个组件都有自己的属性和事件。根组件通常是`&lt;html&gt;`或`...

    jquery4jsf-开源

    jQuery4jsf 是一个 JSF(JavaServer Faces)组件库,它使用了 jQuery javascript 框架的强大功能。 这些 JSF(JavaServer Faces) 组件具有 jQuery 的附加价值,它允许最终用户快速简单地实现其应用程序。

    JSF中使用BooleanCheckbox实现全选功能

    在JavaServer Faces (JSF)框架中,实现全选功能通常是通过使用BooleanCheckbox组件来完成的。这篇博客文章“JSF中使用BooleanCheckbox实现全选功能”可能详细讲解了如何利用这种组件在用户界面中创建一个可以勾选的...

    JSF中文教程jsf

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建Web应用程序。它简化了开发人员创建交互式、数据驱动的...因此,无论你是初学者还是有经验的开发者,理解并掌握JSF都是提升技能树的重要一步。

    JSF Richfaces构建树

    ### JSF Richfaces构建树知识点解析 #### 一、树形结构基础概念 在软件开发领域,树形结构是一种常用的数据结构,具有多种应用场景。树形结构由一系列节点组成,每个节点可以拥有零个或多个子节点。在树形结构中,...

    JSF中文教程.zip

    在《JSF中文教程》的.chm文件中,读者可以深入学习到这些概念,通过实例和示例代码了解如何在实际项目中应用JSF。该教程将帮助初学者快速上手JSF,同时为有经验的开发者提供参考,提升他们的JSF开发技能。

    JSF教程(有关jsf实例的操作步骤)

    在提供的"JSF趙剣.pdf"文件中,可能会详细介绍以上概念以及更多关于如何实际操作JSF实例的步骤和技巧,包括如何配置环境、创建和使用Managed Beans、设计用户界面、处理表单提交以及调试和优化JSF应用程序的方法...

    精通JSF中文教程精通JSF中文教程

    通过导航规则,JSF可以控制用户操作后的页面跳转,实现动态的页面流程。 **7. JSF生命周期** JSF组件有六个主要的生命周期阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用和渲染响应。理解这些阶段...

    jsf中文使用教程jsf中文使用教程

    5. **国际化支持**:JSF支持多语言,这在“JSF中文使用教程”中可能包含如何设置和使用中文资源的内容。 **学习JSF的关键概念**: 1. **Facelet**:Facelets是JSF的默认视图技术,用于创建和组织用户界面组件。 2. ...

    jsf 中文帮助文档

    在JSF中,**组件树** 是一种核心概念,它是页面所有UI组件的逻辑表示。每个组件都有自己的属性和事件,可以通过EL(Expression Language)进行数据绑定,实现视图和模型的交互。**EL** 提供了一种简洁的方式来访问...

    JSF中文教程+JSF参数传递方式

    本教程将深入探讨JSF的核心概念以及如何在JSF应用中传递参数,帮助开发者更好地理解和掌握这一技术。 首先,让我们理解**JSF的基本架构**。JSF的核心组件包括视图、控制器和模型,它们共同构成了MVC(Model-View-...

    JSF帮助文档

    在与数据库交互时,JSF可以与Java Persistence API (JPA) 或Hibernate等ORM框架结合使用,使得持久化操作变得更加简单。JSF还与JavaServer Pages (JSP)、Servlet和JavaBeans (Javabeans) 兼容,允许开发者利用这些...

    JSF中文问题解决方法完整版

    在IT行业中,JavaScript框架(JSF,JavaServer Faces)是一种广泛应用的用于构建Web应用程序的UI层技术。这篇博文“JSF中文问题解决方法完整版”提供了关于如何处理JSF框架在处理中文字符时可能出现的问题的解决方案...

    JSF中ie9时间兼容组件替换实现

    要将这个组件集成到JSF项目中,首先我们需要在项目中引入jQuery和jQuery UI的库。这可以通过在HTML头部添加CDN链接或者将它们下载并放在项目的资源目录下,然后在页面中引用。 ```html &lt;script src="https://code....

    jsf页面调用jquery来实现断面图的代码

    在JavaScript世界中,JavaServer Faces (JSF) 是一个用于构建Web应用程序的MVC框架,而jQuery是一个轻量级的JavaScript库,它简化了DOM操作、事件处理和AJAX交互。当我们需要在JSF页面中引入jQuery以实现更丰富的...

    ajax4jsf中文用户指南

    - `a4j:commandLink` 和 `a4j:commandButton`:替代JSF的`h:commandLink`和`h:commandButton`,支持Ajax操作。 - `a4j:outputPanel`:定义要更新的页面部分。 - `a4j:status`:显示Ajax请求的状态。 - `a4j:load...

    ajax4jsf使用中文手册

    Ajax4JSF(全称是Ajax for JavaServer Faces)是一种集成在JavaServer Faces(JSF)框架中的Ajax库,它允许开发者在JSF应用程序中轻松实现异步数据更新,提供更流畅的用户体验。这份中文手册详细介绍了如何将Ajax...

    JSF入门(中文pdf)

    在JSF中,UI组件(View)可以直接映射到后端的数据源(Model),并可以通过事件处理(Controller)进行交互。这使得开发者可以更专注于业务逻辑,而无需过多关注底层的HTTP通信细节。 首先,JSF的组件库是其一大...

Global site tag (gtag.js) - Google Analytics