Jsf Richfaces inputText onBlur和commandButton onClick
我有一个页面,有两个文本字段和一个Jsf Richfaces inputText onBlur和commandButton onClick,jsf,richfaces,Jsf,Richfaces,我有一个页面,有两个文本字段和一个commandButton,在其中一个文本字段onBlur中,我在bean中调用onBlur()方法,在commandButton中,我在bean中调用onClick()方法,除了单击commandButton外,所有操作都可以正常工作。如果焦点位于带有onBlur的文本框上,则仅调用onBlur方法,而不是同时调用这两个方法。我已经附加了xhtml文件和bean XHTML代码 <h:inputText id="service" value="#{onB
commandButton
,在其中一个文本字段onBlur
中,我在bean中调用onBlur()
方法,在commandButton
中,我在bean中调用onClick()
方法,除了单击commandButton
外,所有操作都可以正常工作。如果焦点位于带有onBlur
的文本框上,则仅调用onBlur
方法,而不是同时调用这两个方法。我已经附加了xhtml文件和bean
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!" />
所讨论的指定示例工作正常(这两个方法都在onBlur和onClick上调用)。 在您的情况下,您似乎拥有阻止用户单击的
a4j:status
组件(例如,用不可见的div覆盖布局)
要验证我的假设,请尝试以下操作(status
attribute removed,a4j:region
added):
如果您提供“xhtml文件和bean”,那就太好了@Andreay我不能在这里附加文件,但我用codeAndrey更新了我的帖子,如果a4j:状态被删除,但要求我们必须在当前请求之前阻止对表单的任何修改。有什么办法可以做到这一点吗?@Karthikeyan根据这一要求,您的表单按预期工作(阻止修改/按钮单击,直到请求得到处理)。您需要输入周围的a4j:region和不阻止按钮的区域内的自定义a4j:status。就我个人而言,我更喜欢在模糊事件上没有阻塞(只需使用a4j:region包装输入)。
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);
}
}
<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!" />