2012-05-08 19 views
8

Potrzebuję wykonać żądanie ajax po kliknięciu "enter" w polu inputText, bez odświeżania strony. To mój kod:JSF 2.0: żądanie ajax po naciśnięciu ENTER

<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> 

A w fasoli Mam proste metody:

public void save(AjaxBehaviorEvent event){ 
    ... 
} 

Wszystkie prace, ale odświeżyć stronę !!! Czemu ? Jak mogę to rozwiązać?

Odpowiedz

3

Istnieje już wątek z pytaniem jakoś podoba twoja How to handle the ENTER keypressed to trigger an onBlur() event?

chciałbym tylko zmienić

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

Jeśli używasz JQuery

$('#form-test\\:inputEnter').onchange(); 
+0

Ten sam problem. Przeładowanie strony !!!! – enfix

+1

rozwiązał mój problem. Musiałem usunąć zdarzenie z filtru dataTable na "enter clic". to jest mój kod 'onkeydown =" PF ('organicGroupsTable'). filter(); return! (event.which === 13 || event.keyCode === 13); "' Dziękujemy! – Uness

-1

myślę, że trzeba wprowadzić tynku param, więc nie wyświetla ponownie całej strony.

<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> 
Powiązane problemy