2012-05-08 19 views
8

necesito hacer una solicitud de ajax cuando hago clic en "ingresar" en el campo de entrada de texto, sin página de actualización. de que es mi código:JSF 2.0: solicitud de ajax al presionar 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> 

Y en frijol tengo un método sencillo:

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

Todas las obras, pero Actualizar página !!! Por qué ? Cómo puedo resolverlo ?

Respuesta

3

Ya existe un hilo con una pregunta de alguna manera como la suya How to handle the ENTER keypressed to trigger an onBlur() event?

me acaba de cambiar

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

Si utiliza jQuery

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

Mismo problema. Recarga de página !!!! – enfix

+1

resolvió mi problema. Necesitaba eliminar un evento del filtro de dataTable en "enter clic". este es mi código 'onkeydown =" PF ('organicGroupsTable'). filter(); return! (event.which === 13 || event.keyCode === 13); "' ¡Gracias! – Uness

-1

Creo que se necesita para entrar en el render param, por lo que no vuelve a representar toda la página.

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