JSF 2.0,Mojarra 2.0.1,PrimeFaces 3.4.1
这是一个p:inputText
组件,当按下回车键时,它应该调用一个支持bean方法.
<p:inputText id="commentInput" rendered="#{status.haveComment}"
value="#{statusBean.newComment}"
onkeypress="if (event.keyCode == 13) { onchange(); return false; }">
<f:ajax event="change" listener="#{statusBean.test}" />
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
虽然支持bean有以下方法:
public void test(AjaxBehaviorEvent event) {
System.out.println("Pressed enter!");
}
Run Code Online (Sandbox Code Playgroud)
当按下回车键时它是调用方法,但它有更多; 意外行为案例:
--Click input text
----Type some letters
------Click somewhere else in the page
--------CONSOLE: Pressed enter!
Run Code Online (Sandbox Code Playgroud)
我认为ajax event=change
以某种方式检测到变化并调用该方法.如何将此p:inputText
组件转换为适当的评论接受者组件,如Facebook或其他人?
当我在inputText字段中点击"enter"而没有刷新页面时,我需要做一个ajax请求.那是我的代码:
<h:form id="form-test">
<p:growl id="messages" showDetail="true"/>
<p:inputText id="inputEnter"
onkeypress="if (event.keyCode == 13) {onchange(); return false; }"
value="#{bean.content}">
<f:ajax event="change" listener="#{bean.save}" update="messages"/>
</p:inputText>
</h:form>
Run Code Online (Sandbox Code Playgroud)
在bean中我有一个简单的方法:
public void save(AjaxBehaviorEvent event){
...
}
Run Code Online (Sandbox Code Playgroud)
一切正常,但刷新页面!!! 为什么?我该如何解决?