2012-06-21 6 views
0

다음 웹 페이지에 다음 코드가 있습니다. action의 메소드가 실행 된 후 프로세스가 성공했는지 여부를 나타내는 레이블이 렌더링됩니다.단추를 클릭 한 후 레이블 숨기기

내가 원하는 것은 단추를 클릭 한 직후에 레이블을 숨기는 것입니다. 이것을 어떻게 할 수 있습니까?

내가 actionListener 사용에 대한 생각하지만 같이 작동하는지 모르겠어요 :

  1. 전화의 actionListener의 방법
  2. 다시 렌더링 MYVIEW (지우기 내 라벨)
  3. 전화 행동의 방법
  4. myView를 다시 렌더링하십시오 (프로세스가 성공했는지 여부를 보여주는 레이블)

아니면 뭐 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

는 자바 스크립트를 사용하여 텍스트를 숨기려면 "onclick을"방법을 사용합니다. 쉬운 방법은 div로 라벨을 래핑하고 onclick/oncomplete 메소드에서 div를 숨기거나 표시하는 것입니다. 또한 작업을 수행 할 div를 생성한다는 것을 기억하십시오. 따라서 HTML 생성 ID를 가져 와서 숨기거나 표시해야합니다. 나는 (내가 말을해야, 아주 쉽게) 당신에게 JS 기능이 사업부를 표시/숨기기 할 드리겠습니다 :

<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; document.getElementById를 ('formActualizacionCubo : imgProcesandoCubo ') .style.display ='none '; muestraDiv ('myForm : actualizacionCuboLabels '); " action = "# {administrationBean.doActualizaCubo}"/>

평범한 JavaScript로 수행 할 수 있고 performace를 저장할 때 서버 호출을 사용하여 항목을 렌더링하지 마십시오. 또한 RF 3.3 또는 RF 4를 사용하여 '로드 중입니다. 기다려주세요'라는 이미지를 힌트로 추가하면 전체 페이지가 고정 될 수도 있습니다. 귀하의 버튼과 링크를 비활성화하십시오!).

+0

감사합니다. Luigg 나는 라벨에 대해 제안하는 것을 시도해 볼 것입니다. 거기에 내가 여기에 대한 이미지를 물어 스레드 http://stackoverflow.com/questions/10900860/disable-button-and-show-loading-image-while-processing-jsf – BRabbit27

+0

@ BRabbit27 JSF 1.2 또는 JSF 2 사용하고 있습니다 ? –

+0

JSF 2.1.6 (Mojarra) – BRabbit27

관련 문제