单击按钮richfaces后隐藏标签

时间:2012-06-21 19:39:06

标签: ajax jsf richfaces mojarra

我的网页上有以下代码。在action中的方法执行后,将呈现一个标签,指示该过程是否成功。

我想要的是在点击按钮后立即隐藏标签。我怎样才能做到这一点?

我在考虑使用actionListener,但我不知道它是否有效:

  1. 调用actionListener的方法
  2. 重新渲染myView(清除我的标签)
  3. 致电行动的方法
  4. 重新渲染myView(显示标签过程是否成功)
  5. 或者onclick="getElementById().hide"中的某些内容?

    有什么想法吗?

    干杯,

       ...
       ...
       <a4j:commandButton id="btnActualizaCubo"
                           value="Actualizar Cubo"
                           render="messageDependenciaCubo actualizacionCuboLabels @this"
                           onclick="return confirm('Las fechas seleccionadas son correctas?');"
                           onbegin="this.disabled=true;
                           document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='block'"
                           oncomplete="this.disabled=false;
                           document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='none'"
                           action="#{administrationBean.doActualizaCubo}"/>
       ...
        <a4j:outputPanel id="actualizacionCuboLabels" style="font-size: 14px; color: #D17100">
            <h:outputText rendered="#{administrationBean.actualizacionCuboCorrectaLabelRendered}"
                          value="Actualización correcta !"/>
            <h:outputText rendered="#{administrationBean.actualizacionCuboFalloLabelRendered}"
                          value="Fallo la actualización !"/>
        </a4j:outputPanel>
       ...
    

1 个答案:

答案 0 :(得分:1)

使用“onclick”方法使用JavaScript隐藏文本。一个简单的方法是使用div包装标签,并分别在onclick / oncomplete方法中隐藏/显示div。另外,请记住生成一个div来完成工作,因此您只需获取HTML生成的ID并隐藏/显示它。我会让你的JS函数隐藏/显示一个div(很简单,我必须说):

<script type="text/javascript">
    function ocultaDiv(divId) {
        document.getElementById(divId).style.display = 'none';
    }

    function muestraDiv(divId) {
        document.getElementById(divId).style.display = 'block';
    }
</script>
<a4j:commandButton id="btnActualizaCubo"
    value="Actualizar Cubo"
    render="messageDependenciaCubo actualizacionCuboLabels @this"
    onclick="return confirm('Las fechas seleccionadas son correctas?'); ocultaDiv('myForm:actualizacionCuboLabels');"
    onbegin="this.disabled=true; document.getElementById('formActualizacionCubo:imgProcesandoCubo').style.display='block'"

oncomplete =“this.disabled = false; document.getElementById('formActualizacionCubo:imgProcesandoCubo')。style.display ='none'; muestraDiv('myForm:actualizacionCuboLabels');”         action =“#{administrationBean.doActualizaCubo}”/&gt;

当您可以使用纯JavaScript并保存性能时,请记住不要使用服务器调用呈现您的项目。此外,如果您使用RF 3.3或RF 4添加关于您正在使用的图像的提示,请添加“正在加载,请稍候”,这可以通过甚至可以冻结整个页面来完成(无需禁用你的按钮和链接!)。