2010-06-28 8 views
4

Comment puis-je annuler une soumission de formulaire en utilisant GWT?Annuler la soumission du formulaire

Je dois valider le formulaire et traiter certaines des données avant de les soumettre. Jusqu'ici j'ai fait ce qui suit, le problème est que le formulaire est soumis même si le SubmitEvent est annulé.

form.addSubmitHandler(new SubmitHandler() { 
     @Override 
     public void onSubmit(SubmitEvent event) { 
      if(validate()) { 
       // i do some processing here 
       form.submit(); 
      } 

      else event.cancel(); // submits anyway 
     } 
    }); 

Est-ce un problème GWT? Comment dois-je faire?

edit: Je viens de découvrir que si c'était un bouton qui utilise form.submit() sur click, l'événement submit est annulé. Toutefois, si un bouton SubmitButton est cliqué, l'événement n'est pas annulé. Donc je suppose que c'est un comportement de navigateur. Encore, j'ai besoin de trouver moyen ...

edit: viens de découvrir que cela n'arrive qu'en mode développement, je me sens bête de ne pas avoir essayé le mode de développement en dehors avant.

+0

Pourquoi utilisez-vous 'form.submit()' 'dans un SubmitHandler'? Il sera soumis, sauf si vous l'annulez explicitement(). –

+0

J'ai raté ça, merci. cancel() ne fonctionne toujours pas. –

+0

Hmm, je n'ai plus d'idées - votre code fait exactement ce que suggèrent les javadocs pour FormPanel (http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client /ui/FormPanel.html). J'ai cherché dans la liste des problèmes de GWT et il y a quelques problèmes qui ressemblent à ce que vous affrontez, mais ils ont été corrigés depuis ~ 1.7 - quelle version utilisez-vous? Mais je suggérerais juste de coller à un 'Button' normal et d'ajouter un' ClickHandler' explicitement - moins de tracas: P –

Répondre

3

Il est une question qui se produit uniquement en mode de développement

J'ai signalé le problème: http://code.google.com/p/google-web-toolkit/issues/detail?id=5067

+0

Je pense que vous avez oublié d'ajouter que cela se produit uniquement quand un SubmitButton est utilisé (?). –

+0

Oups en effet, merci :) –

+0

Tout le monde va voter pour la résolution de ce problème. Cela m'a presque conduit à la distraction. – David

Questions connexes