当我在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>
在bean中我有一个简单的方法:
public void save(AjaxBehaviorEvent event){
...
}
一切正常,但刷新页面!!!为什么?我该如何解决?
答案 0 :(得分:4)
已经存在一个问题的线程,就像你的How to handle the ENTER keypressed to trigger an onBlur() event?
一样我只想改变
onkeypress="if (event.keyCode == 13) {e.preventDefault();
inputEnter.onchange(); return false; }"
如果你使用JQuery
$('#form-test\\:inputEnter').onchange();
答案 1 :(得分:-1)
我认为您需要输入渲染参数,因此它不会再渲染整个页面。
<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" render="messages" listener="#{bean.save}" update="messages"/>
</p:inputText>
</h:form>