我有一个有两个文本字段和一个commandButton
的页面,在其中一个文本字段onBlur
中,我在bean中调用onBlur()
方法,在commandButton
中,我在bean中调用onClick()
方法,除了当我单击commandButton
,如果焦点是在onBlur
的文本框上,那么只有onBlur
方法被调用,而不是两者。我已经附加了xhtml文件和bean。
<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!" />
憨豆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);
}
}
指定的例子在问题工作OK(两个方法都调用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!" />