当焦点位于复选框上并且用户按下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(没有寻找较早的版本,但是尝试起来非常简单)