【问题标题】:Show Richfaces Component on event selection在事件选择上显示 Richfaces 组件
【发布时间】:2011-12-26 10:47:29
【问题描述】:

我想知道在执行事件时如何检索我的 jsf 组件值。例如考虑这个组件:

<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的change事件,这样当组件执行selectitem事件,从而设置一个值时,change事件就会被绕过。但是,这不起作用,有什么建议或方法可以做我需要的吗?

【问题讨论】:

    标签: jsf jsf-2 richfaces


    【解决方案1】:
    onchange="if(!#{rich:component('selectEmpresa')}.getValue()) return false;"
    

    这个表达式是在视图被渲染时计算的,而不是在 DOM 事件执行时计算的(检查生成的 HTML 源代码以自己查看)。您需要改用 JavaScript 来获取当前值。应该这样做:

    onchange="if (!this.value) return false;"
    

    或者只是

    onchange="return !!value;"
    

    【讨论】:

      猜你喜欢
      • 2019-02-04
      • 2014-06-16
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 2019-12-11
      相关资源
      最近更新 更多