开发者

richfaces text and text area on rerender unable to use keyboard up and down arrow keys to move the cursor

I am using RichFaces 3.3.2 and JSF 1.2.

Scenario:

In my application when the user enters some text in a text field or a text area we have to enable the apply button. For this we are using rerender 'onkeyup' event. Validation error mesage should be shown when user enters invalid date

JSF Page code:

 <h:inputText id="input"  required="true" requiredMessage="Value cann't be null" 
 value="#{client.Value}" validatorMessage="Value should be between 0 and         999999999999.99"  valueChangeListener="#{myHandler.onChange}" maxlength="30">
  <f:validateDoubleRange minimum="0" maximum="999999999999.99"/>
   <a4j:support event="onkeyup" eventsQueue="A4JQueue"          reRender="outputPanel_btn_save"></a4j:support>

Apply button code:

 <a4j:outputPanel id="outputPanel_btn_save">
 <a4j:commandButton value="#{msg.btn_Apply}" id="applyButton"  reRender="outputPanel_btn_save" eventsQueue="A4JQueue" disabled="#{myHandler.isApplyButtonDisabled}" styleClass="button" action="#{myHandler.update}">
 </a4j:commandButton>
 </a4j:outputPanel>

Backing bean code for myHandler.onChange()

 MyHandler {
  public void onChange(ValueChangeEvent event) {
    Iterator<FacesMessage> facesMessages = getFacesContext().getMessages();
    boolean isMessagePresent=false;
    while(facesMessages.hasNext()){
       FacesMessage message = facesMessages.next();
       isMessagePresent=true;
       break;
    }

if (event != null
    && event.getNewValue() != event.getOldValue()&& !isMessagePresent) {
        this.isApplyButtonDisabled = Boolean.FALSE;
    }
    if(isMessagePresent){
        this.isA开发者_开发技巧pplyButtonDisabled = Boolean.TRUE;
    }
}


}

Problem: When the user enters some text onkeyup event we are rerendering the apply button. Due to rerender keyboard arrow keys are not working as the field is loosing it's focus onKeyup event. I tried using JS to enable the apply button, when user enters some text. But then JSF validations are not being executed and no validation message are being displayed.

Question: Can you suggest a way to enable the apply button with out loosing focus on the text field / text area and also JSF validations should be executed / displayed?


Try using focuc attribute on a4j:support. It allows to set focus on a component after Ajax request.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜