当焦点位于复选框上并且用户按下Enter时,我需要根据其状态来使该值处于活动状态或非活动状态,并且还需要使按钮处于焦点状态,焦点可以工作,但是该值没有被更新,这就是我所拥有的至今:

SelectBooleanCheckBox:

<p:selectBooleanCheckbox id="sbcActivoProp" widgetVar="sbcActivoPropWV" onchange="document.getElementById('frmGuardarActualizarPropiedad:btnGuardarPropiedad').focus(); return false;"
    binding="#{programaAccesoMB.sbcActivoProp}"
    label="#{etiquetasMsg.general_activo}" disabled="false">
</p:selectBooleanCheckbox>


Javascript:

<script type="text/javascript">
                                 var focusSbcActivoProp = document.getElementById('frmGuardarActualizarPropiedad:sbcActivoProp_input');
                                    if (focusSbcActivoProp != null) {
                                     focusSbcActivoProp.onkeydown = function(event) {
                                     if (event.keyCode == 13) {
                                         var ischecked = sbcActivoPropWV.input.is(':checked');
                                         if(ischecked){
                                             console.log('is checked');
                                             document.getElementById('frmGuardarActualizarPropiedad:sbcActivoProp').value=false;
                                         }else{
                                             console.log('is not checked');
                                             document.getElementById('frmGuardarActualizarPropiedad:sbcActivoProp').value=true;
                                             }
                                         document.getElementById('frmGuardarActualizarPropiedad:btnGuardarPropiedad').focus();
                                     }
                                     return false;
                                     }
                                };
                            </script>

最佳答案

PrimeFaces documentation为您提供答案:


  客户端API
  
  窗口小部件:PrimeFaces.widget.SelectBooleanCheckbox

Method   Params     ReturnType  Description
check()     -       void        Checks the checkbox.
uncheck()   -       void        Unchecks the checkbox.
toggle()    -       void        Toggles check state.



我检查了一下,这至少适用于7.0和8.0(没有寻找较早的版本,但是尝试起来非常简单)

10-07 18:09