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.
Pourquoi utilisez-vous 'form.submit()' 'dans un SubmitHandler'? Il sera soumis, sauf si vous l'annulez explicitement(). –
J'ai raté ça, merci. cancel() ne fonctionne toujours pas. –
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 –