Jsf 在事件选择上显示Richfaces组件
我想知道在执行事件时如何检索jsf组件值。例如,考虑这个组成部分:Jsf 在事件选择上显示Richfaces组件,jsf,jsf-2,richfaces,Jsf,Jsf 2,Richfaces,我想知道在执行事件时如何检索jsf组件值。例如,考虑这个组成部分: <rich:select id="selectEmpresa" value="#{macroprocesoController.empresaSeleccionada}" converter="genericConverter" enableManualInput="true" onchange="if(!#{rich:component('selectEmpresa')}.getValue()) ret
<rich:select id="selectEmpresa"
value="#{macroprocesoController.empresaSeleccionada}"
converter="genericConverter" enableManualInput="true" onchange="if(!#{rich:component('selectEmpresa')}.getValue()) return false;">
<f:selectItems value="#{selectItemsController.empresaItems}" />
<a4j:ajax execute="@this" render="macroProcesosTable" event="selectitem" listener="#{macroprocesoController.empresaSelectedListener}"></a4j:ajax>
<a4j:ajax execute="@this" render="macroProcesosTable" event="change" listener="#{macroprocesoController.empresaSelectedListener}"></a4j:ajax>
</rich:select>
我想要的是有条件地为变更事件执行a4j:ajax
,这样当组件执行selectitem
事件并因此设置一个值时,change
事件将被绕过。然而这不起作用,有什么建议或方法来做我需要的吗
onchange="if(!#{rich:component('selectEmpresa')}.getValue()) return false;"
该表达式是在呈现视图时计算的,而不是在执行DOM事件时计算的(请检查生成的HTML源代码以亲自查看)。您需要使用JavaScript来获取当前值。应采取以下措施:
onchange="if (!this.value) return false;"
或者只是
onchange="return !!value;"