由JQuery选择的Primefaces复选框无法正常工作

时间:2015-08-27 14:12:54

标签: javascript jquery jsf jsf-2 primefaces

我正在使用JQuery来选择一组复选框......在视觉上它工作正常。第一次,所有检查都提交正确。但是,如果我选择all,再次单击以取消选择all,并再次选择all,当我提交表单时,对于JSF,所有这些都被评估为false。

function selectAllByClass(checkAll , classeCheckbox) {

var checked = checkAll.checked;

//to change the checked attribute                
$('div.' + classeCheckbox + ' input[type=checkbox]').attr('checked',
        checked);

if (checked) {

    $('div.' + classeCheckbox + ' > div.ui-chkbox-box').each(function() {
        $(this).addClass('ui-state-active');

        $(this).children('span').addClass('ui-icon ui-icon-check');

    });
} else {

    $('div.' + classeCheckbox + ' > div.ui-chkbox-box').each(function() {
        $(this).removeClass('ui-state-active');

        $(this).children('span').removeClass('ui-icon ui-icon-check');

    });
}

}

<p:outputPanel
                    id="parcelasPanel"
                    deferred="true"
                    deferredMode="visible"
                    delay="10"
                    styleClass="togglePanelEscondido escondido">

                    <p:dataTable styleClass="tabela_sgi"
                        value="#{cobranca.parcelas}"
                        var="parcela">

                        <p:column
                            headerText="Nº do Boleto(s)"
                            styleClass="alinhar_centro">
                            <h:outputText value="#{parcela.numeroBoleto}" />
                        </p:column>

                        <p:column
                            headerText="Nº Parcela(s)"
                            styleClass="alinhar_centro">
                            <h:outputText value="#{parcela.numeroParcela}/#{cobranca.quantidadeParcelas}" />
                        </p:column>

                        <p:column
                            headerText="Nº Reemissões"
                            styleClass="alinhar_centro">
                            <h:outputText value="#{parcela.numeroReemissoes}" />
                        </p:column>

                        <p:column
                            headerText="Vencimento"
                            styleClass="alinhar_centro">
                            <h:outputText value="#{parcela.dataVencimento}">
                                <f:convertDateTime />
                            </h:outputText>
                        </p:column>

                        <p:column
                            headerText="Valor"
                            styleClass="alinhar_direita">
                            <h:outputText value="#{parcela.valor}">
                                <f:convertNumber
                                    type="currency"
                                    currencyCode="BRL" />
                            </h:outputText>
                        </p:column>

                        <p:column
                            headerText="Valor Atualizado"
                            styleClass="alinhar_direita">
                            <h:outputText value="#{parcela.valorAtualizado}">
                                <f:convertNumber
                                    type="currency"
                                    currencyCode="BRL" />
                            </h:outputText>
                        </p:column>

                        <p:column
                            headerText="Situação"
                            styleClass="alinhar_centro tamanho_col_situacao">
                            <h:outputText value="#{parcela.situacao}" styleClass="bold" />
                        </p:column>

                        <p:column
                            headerText="Negociar"
                            styleClass="alinhar_centro tamanho_col_negocias">
                            <p:selectBooleanCheckbox
                                value="#{negociacaoBaseBean.parcelasSelecionadas[parcela]}"
                                disabled="#{!negociacaoBaseBean.tipoNegociacaoSelecionado.aceitaParcelas or (negociacaoBaseBean.tipoNegociacaoSelecionado.eReemissaoENaoPodeReemitir(parcela.podeReemitir))}"
                                styleClass="#{negociacaoBaseBean.tipoNegociacaoSelecionado.aceitaParcelas and !(negociacaoBaseBean.tipoNegociacaoSelecionado.eReemissaoENaoPodeReemitir(parcela.podeReemitir))?'selecionaParcelaOn':'selecionaParcelaOff'}">

                            </p:selectBooleanCheckbox>
                        </p:column>

                    </p:dataTable>


                </p:outputPanel>

1 个答案:

答案 0 :(得分:1)

使用prop()代替attr()。您需要更改元素的实际属性,而不仅仅是属性。