我正在使用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>
答案 0 :(得分:1)
使用prop()
代替attr()
。您需要更改元素的实际属性,而不仅仅是属性。