Richfaces inputText onBlur и commandButton onClick - PullRequest
2 голосов
/ 28 августа 2011

У меня есть страница с двумя текстовыми полями и commandButton, в одном из текстовых полей onBlur я вызываю onBlur() метод в компоненте, а в commandButton я вызываю onClick() метод в компоненте, все работает нормально, кроме случаев, когда я нажимаю commandButton, если фокус находится на текстовом поле с onBlur, тогда только метод onBlur был вызван не обоими. Я прикрепил файл xhtml и бин.

Код XHTML

<h:inputText id="service" value="#{onBlurTestBean.service}">
  <a4j:support status="test" event="onblur"
    action="#{onBlurTestBean.onBlur}"  reRender="category" />
</h:inputText>
<a4j:htmlCommandLink id="submit" action="#{onBlurTestBean.onClick}"
  ajaxSingle="true" value="Click!" />

Bean

public class OnBlurTestBean {
    private String service;
    private String category;
    public void initialize(){
    }
    public void onBlur(){
        log("onBlur");
        try{
            Thread.sleep(1000);
        }catch(Exception e){

        }
    }
    public void onClick(){
        log("OnClick");
    }
    public void log(String msg){
        System.out.println(msg);
    }
}

1 Ответ

1 голос
/ 06 сентября 2011

Указанный рассматриваемый пример работает нормально (оба метода вызываются onBlur и onClick). В вашем случае кажется, что у вас есть a4j:status компонент, который блокирует щелчки пользователя (например, покрывает макет невидимым div).

Чтобы проверить мои предположения, попробуйте следующее (атрибут status удален, a4j:region добавлен):

<a4j:region>
    <h:inputText id="service" value="#{onBlurTestBean.service}">
        <a4j:support event="onblur"
            action="#{onBlurTestBean.onBlur}"  reRender="category" />
    </h:inputText>
</a4j:region>
<a4j:htmlCommandLink id="submit" action="#{onBlurTestBean.onClick}"
        ajaxSingle="true" value="Click!" />
...