PrimeFaces SelectManyCheckbox - 使用Javascript取消选中所有复选框

时间:2017-10-17 19:44:03

标签: javascript jquery jsf checkbox primefaces

是否有一种简单的方法可以使用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');
    });
}

1 个答案:

答案 0 :(得分:1)

从未使用过PrimeFaces,但看看他们的网页我会尝试这个(重要:将[yourformid]替换为表单的id(你不会&#39; t在你的问题中显示表单元素))...

FOR UNSELECTING

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');
}