2010-08-20 8 views
4

J'ai un formulaire qui doit être soumis avec ajax. J'essaye d'obtenir la validation pour fonctionner mais cela ne fonctionnera pas quand j'emploie ajax. Quand je prends l'ajax dehors et soumets le formulaire avec un testinput vide il déclenche correctement la validation et ne soumet pas le formulaire. Comment puis-je faire cela avec un appel ajax. Ma forme est ci-dessous.JSF 2.0 - Ajax soumettre la validation sur les entrées

<h:form> 
    <f:ajax> 
    <h:panelGrid columns="3"> 
     <h:outputLable for=test" value="testinput:" /> 
     <h:inputText id=test" required="true" label="testinput" /> 
     <h:message for="test" id="testError"/> 
    </h:panelGrid> 

    <h:commandButton value="Submit" actionListener="#{testBean.doSomething}" /> 
    </f:ajax> 
</h:form> 

Répondre

5

Le <f:ajax> par défaut ne réengendrer pas la forme, de sorte que vous ne verrez rien. Remplacez <f:ajax> par <f:ajax execute="@form" render="@form" />.

+1

Ceci est juste une question parce que ajax ne fera pas toujours ce que je veux. Ne devrait-il pas mettre dans le bouton de commande afin qu'il se déclenche quand un ActionEvent se produit ou est-ce que son code ferait de même? – AnAmuser

+0

Dans cet extrait de code particulier, il fait la même chose. – BalusC

3

Peut-être essayer quelque chose comme ceci:

<h:form id="yourFormId"> 
    <!-- form content --> 

    <h:commandButton value="Submit"> 
    <f:ajax execute="yourFormId" listener="#{testBean.doSomething}"/> 
    </h:commandButton> 
</h:form>