The case pointed out by Don is slightly different as the AjaxSubmitLink is attached to a <input type="submit"/> tag. Adding 'attributes.setPreventDefault(true);' in updateAttributes actually solves his problem.

On 13/04/2015 14:32, Sven Meier wrote:
Hi Andrea,

since WICKET-5597 AjaxSubmitLink already changes the button to prevent default submitting of the form:

    tag.put("type", "button");

Have fun
Sven


Am 13.04.2015 um 14:19 schrieb Andrea Del Bene:
Due to WICKET-5197 I think we should add to 'attributes.setPreventDefault(true);' to AjaxSubmitLink
Hi,

Please create a quickstart app and attach it to a ticket at JIRA.
Thanks!
On Apr 12, 2015 9:43 PM, "Don Ferguson" <[email protected]> wrote:

Dear Wicket Boffins,

I have a Wicket 6 app that I’ve recently migrated to Wicket 7. In the
app there is a form whose AjaxSubmitLink hides the form as part of the
submit. In Wicket7, this causes a ListenerInvocationNotAllowedException to
be thrown, since the component that submitted the form is no longer
visible.  What is the approved “wicket way” to do what I’m attempting?

Thanks in advance.

-Don

Here’s a stripped down version of the code:

JAVA:

public class TestPage extends WebPage {
     public TestPage() {
         Form form = new Form("form");
         form.add(new AjaxSubmitLink("submit") {
             @Override
             protected void onSubmit(AjaxRequestTarget target, Form<?>
form) {
                 super.onSubmit(target, form);
                 form.setVisible(false);
                 target.add(form);
             }
         });
         add(form.setOutputMarkupPlaceholderTag(true));
     }
}

HTML:
<html xmlns="http://www.w3.org/1999/xhtml"; xmlns:wicket="
http://wicket.apache.org";>
<body>
   <h3>Test Form Submit Hides Form</h3>

   <form wicket:id="form">
       <h4>Form Element</h4>
       <input type="submit" wicket:id="submit" value="Submit"/>
   </form>

</body>

EXCEPTION THROWN ON SUBMIT:
org.apache.wicket.core.request.handler.ListenerInvocationNotAllowedException: Component rejected interface invocationComponent: [Form [Component id =
form]] Listener: [RequestListenerInterface name=IFormSubmitListener,
method=public abstract void
org.apache.wicket.markup.html.form.IFormSubmitListener.onFormSubmitted()]
         at
org.apache.wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:212)
         at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.invokeListener(ListenerInterfaceRequestHandler.java:241)
         at
org.apache.wicket.core.request.handler.ListenerInterfaceRequestHandler.respond(ListenerInterfaceRequestHandler.java:234)
…


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to