10

当我在 inputText 字段中单击“输入”时,我需要执行 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){
  ...
}

一切正常,但它刷新页面!为什么 ?我该如何解决?

4

2 回答 2

4

已经有一个与您的问题类似的线程如何处理按下 ENTER 键以触发 onBlur() 事件?

我只想改变

onkeypress="if (event.keyCode == 13) {e.preventDefault();
inputEnter.onchange(); return false; }" 

如果你使用 JQuery

$('#form-test\\:inputEnter').onchange();
于 2012-05-09T11:32:44.757 回答
-1

我认为您需要输入 render param ,因此它不会再次渲染整个页面。

<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>
于 2012-08-20T10:03:26.390 回答