【问题标题】:PrimeFaces SelectManyCheckbox - Uncheck all checkboxes using JavascriptPrimeFaces SelectManyCheckbox - 使用 Javascript 取消选中所有复选框
【发布时间】:2017-10-17 19:44:02
【问题描述】:

有没有一种简单的方法可以使用 JavaScript 选择/取消选择 p:selectManyCheckbox 中的所有复选框?

我现在可以使用它,但我的方法似乎过于复杂,因为我觉得 PrimeFaces 应该很简单

代码如下:

选择布尔复选框:

<p:selectManyCheckbox id="multiSelectPerformanceCb"
    widgetVar="multiSelectPerformanceCb"
    value="#{cc.attributes.filter.selectedCriteria}">
        <f:selectItems value="#{cc.attributes.filter.performanceCriteria}"
            var="criteria" itemLabel="#{criteria.text}"
            itemValue="#{criteria.description}" />
</p:selectManyCheckbox>

在单击按钮时运行的方法:

function performanceSliderBooleanClick()
    //Uncheck the inputs
    PF('multiSelectPerformanceCb').inputs.each(function(){
        this.checked = false;
    });

    //Remove ui-state-active from the outputs
    PF('multiSelectPerformanceCb').outputs.each(function(){
        $(this).removeClass('ui-state-active');
    });
}

【问题讨论】:

    标签: javascript jquery jsf checkbox primefaces


    【解决方案1】:

    从未使用过 PrimeFaces,但看看他们的页面我会试试这个(重要:将[yourformid] 替换为表单的id(您不会在你的问题))...

    用于取消选择

    function performanceSliderBooleanClick() {
        $('#[yourformid]\\:multiSelectPerformanceCb').find('div.ui-chkbox-box')
                                                     .removeClass('ui-state-active')
                                                     .find('span.ui-chkbox-icon')
                                                     .removeClass('ui-icon-check')
                                                     .addClass('ui-icon-blank');
    }
    

    FOR TOGGLING(全选/取消全选)

    function performanceSliderBooleanClick() {
        $('#[yourformid]\\:multiSelectPerformanceCb').find('div.ui-chkbox-box')
                                                     .toggleClass('ui-state-active')
                                                     .find('span.ui-chkbox-icon')
                                                     .toggleClass('ui-icon-check ui-icon-blank');
    }
    

    【讨论】:

    • 这适用于处理 UI 的 JavaScript 解决方案,但不能与后端连接。我一直在寻找更多可能使用 widgetVar 或内置 PrimeFaces 方法的 PrimeFaces 解决方案,但我给了你一个赞成票,因为我喜欢这个解决方案,因为我喜欢这个解决方案,因为我在多行中简化了 UI 清理
    • @TonyScialo:您的解决方案更符合 PrimeFaces 的小部件方法,并且不依赖于组件的结构设计。你可以对这个组件的[source](github.com/primefaces/primefaces/blob/master/src/main/resources/…) 做一些小的改动,让它成为一个真正的小部件功能(检查其他类似的组件)。然后,您可以通过拉取请求将此作为增强功能提交到问题列表中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    相关资源
    最近更新 更多