Boa tarde galera, to com um problema aqui e gostaria de ver se alguem pode me ajudar.
Estou trabalhando numa tela de cadastro e no campo “Data de nascimento” ele poderá ser preenchido manualmente e/ou com auxílio do rich:calendar. Até aí tudo bem.
O problema é que qdo a data é preenchida com auxilio do rich:calendar ao lado aparece a idade normalmente com um evento onchanged, porém quando a data é preenchida manualmente a idade não é atualizada.
Tentei todos os tipos de eventos e o mais satisfatório foi o onkeydown, só que se por acaso o usuário do sistema após digitar a data de nascimento ele NÃO der um tab e posicionar o curso no próximo campo com o mouse, a idade ficará em branco. Pensei em cercar todas as possíveis ações do usuário com eventos tipo onmouseclick, onmousemove etc…até funcionou, mas ainda não está 100%. Acredito que o melhor evento seria o onblur, mas é o único que não consigo rodar.
<h:outputLabel style=“font-weight: bold;” value="#{messages.lbl_data_nascimento}" />
<h:panelGrid columns=“12” border=“0” cellpadding=“0” cellspacing=“0”>
<rich:calendar value="#{atleta.dataNascimento}" mode=“ajax” id=“dataNascimento” inputStyle=“width: 65px;”
datePattern=“dd/MM/yyyy” enableManualInput=“true” inputClass=“maskDate” label="#{messages.lbl_data_nascimento}" >
<a4j:support event=“onchanged” reRender=“idade” ajaxSingle=“true”/>
</rich:calendar>
<a4j:support event=“onkeydown” reRender=“idade” ajaxSingle=“true”/>
<a4j:support event=“onmousemove” reRender=“idade” ajaxSingle=“true”/>
<a4j:support event=“onmouseclick” reRender=“idade” ajaxSingle=“true”/>
<rich:spacer width=“15” />
<rich:column width=“50” style=“border: none;”>
<h:outputLabel value="#{messages.lbl_idade} #{atletaEditController.idade}" id=“idade” />
</rich:column>