2017-04-11 18 views
0

달력, oninputblur 이벤트와 이벤트에 onblur 다른 하나 허용 할 사용자에게 캘린더에서 날짜를 선택하려면 클릭하거나 수동으로 날짜를 입력하십시오. 사용자가 클릭하여 날짜를 선택한 다음 나중에 수동으로 편집 할 수있는 기회도 있습니다. 두 태그 모두 동일한 달력 구성 요소 ID를 다시 렌더링합니다. 테스트에서 지금까지이 작업하고 있지만 같은 ID에 "두 번"reRender 시도 할 때 서블릿 예외가 발생할 수있는 경우 모든 경우 궁금 무엇입니까? 나는 그들이 각각의 별개의 사건이기 때문에 그것이 아니라고 생각하고있다. 그러나 누군가가 그것에 대한 우려를 본다면 나는 진심으로 피드백에 감사 할 것이다. 아래는 제가 언급 한 코드입니다. 심 Richfaces의 2.2 버전을 사용하고있는이 특정 문제에 직면하고있는 사람들을위한여러 A4J 지원 태그 (심 2.2) 나는 richfaces 달력에 2 개 A4J 지원 태그를 추가 한 구성 요소

<s:decorate id="acctHldrBthDtField" template="/layout/edit.xhtml"> 
    <ui:define name="label">Account Holder Birth Date</ui:define> 
     <rich:calendar id="acctHldrBthDt" 
      value="#{P18SlipHome.instance.acctHldrBthDt}" 
      datePattern="dd-MMM-yyyy" enableManualInput="true" 
      onfocus="saveCurrentFocus(this);" > 
      <a:support event="onblur" reRender="acctHldrBthDtField" ajaxSingle="true"/> 
      <a:support event="oninputblur" reRender="acctHldrBthDtField" ajaxSingle="true"/> 
    </rich:calendar><br/>Date format must be dd-Mmm-yyyy 
</s:decorate> 

답변

0

, 이것은 내가 그에 도착 대답은 나를 위해 작동합니다 :

<s:decorate id="cntlPrsnBthDtField" template="/layout/edit.xhtml"> 
<ui:define name="label">Birth Date</ui:define> 
<rich:calendar id="cntlPrsnBthDt" 
    value="#{_p18CntlPrsn.bthDt}" 
    datePattern="dd-MMM-yyyy" 
    enableManualInput="true" 
    maxlength="11" > 
    <a:support event="oninputchange" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtField" ajaxSingle="true"/> 
    <a:support event="onchanged" action="#{P18SlipHome.onDateChangeValidation}" reRender="cntlPrsnBthDtPanelGrid" ajaxSingle="true"/> 
</rich:calendar><br/>Date format must be dd-Mmm-yyyy 
</s:decorate> 
+0

미안 해요, 신중하게 검토해야 내 대답을 제출하기 전에. 여기에 대한 설명이 좀 더 필요합니다. ID 중복 우려는 근거가 없습니다. 위의 솔루션을 사용하여 ID를 조사하지 않았습니다. 이 문제가 해결 된 다른 문제는 수동으로 잘못된 날짜를 입력 한 다음 팝업 달력에서 올바른 날짜를 선택한 다음 다른 필드를 클릭해도 유효성 검사 오류가 사라지 지 않습니다. 다른 이벤트와 함께 두 번째 a4j 지원 태그를 사용하면 해당 문제가 해결되었습니다. 이 대답이 혼동을 일으키는 경우 다시 사과드립니다. – Randy