L'ajout de AjaxEventBehavior à la forme du bouton empêche formulaire de soumission avec Wicket 6.1 et 6.2
J'ai un simple FormPage
dérivé de WebPage
définie comme ceci:
public FormPage() {
final FeedbackPanel feedback = new FeedbackPanel("feedback");
add(feedback);
final TextField<String> entry = new TextField<String>("entry");
final Button button = new Button("button");
button.add(new AjaxEventBehavior("onclick") {
@Override
protected void onEvent(final AjaxRequestTarget target) {
System.out.println("Event");
}
});
Form<DataModel> form = new Form<User>("userForm", new CompoundPropertyModel<DataModel>(dataModel)) {
@Override
protected void onValidate() {
System.out.println("Validate");
String entryValue = entry.getValue();
if (entryValue == null || entryValue.length() == 0) {
error("entry value required");
}
};
@Override
protected void onSubmit() {
System.out.println("Submit");
if (!hasErrors()) {
String entryValue = entry.getValue();
if (!entryValue.equals("value")) {
error("entry has wrong value");
}
}
};
};
form.add(entry);
form.add(button);
add(form);
}
Je suis en train de faire quelque chose (dans cet exemple juste l'impression de console) sur la soumission d'un formulaire, j'ai donc attaché AjaxEventBehavior
sur le bouton de onclick
événement. Cela fonctionne parfaitement: l'action est exécuté sur le bouton de la souris, mais maintenant, la forme n'est pas présentée.
J'ai aussi été à expérimenter avec
form.add(new AjaxEventBehavior("onsubmit")
et ce gestionnaire d'événement empêche également la soumission d'un formulaire.
Par exemple,
entry.add(new AjaxEventBehavior("onclick")
permet de formulaire pour être soumis, mais l'événement n'est pas lié à la soumission.
Maintenant, je suis perplexe comment puis-je avoir mon formulaire et effectuer une action sur cet événement.
OriginalL'auteur divanov | 2012-11-03
Vous devez vous connecter pour publier un commentaire.
Par défaut dans le Guichet à 6, un comportement est associé à un composant empêche le défaut d'action du volet de passe.
Si vous voulez déclencher à la fois le comportement et la composante de l'action, vous devez remplacer la updateAjaxRequestAttributes méthode dans votre comportement:
OriginalL'auteur Thomas