diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java index 80e01d9744..f7f181b3c2 100644 --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/SubmitLink.java @@ -207,9 +207,18 @@ protected CharSequence getTriggerJavaScript() // find the root form - the one we are really going to submit Form root = getForm().getRootForm(); + StringBuilder script = new StringBuilder(); + if (shouldInvokeJavaScriptFormOnsubmit()) + { + script.append(String.format("var ff=document.getElementById('%s');", getForm().getMarkupId())); + script.append("if (typeof ff.onsubmit === 'function' && ff.onsubmit() == false) return false;"); + } + CharSequence url = urlForListener(new PageParameters()); - - return root.getJsForListenerUrl(url); + script.append(root.getJsForListenerUrl(url)); + script.append("return false;"); + + return script; } else { diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.html b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.html index a5c26ca477..e5bfee34e4 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.html +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.html @@ -11,13 +11,13 @@

wicket.markup.html.form.SubmitLink

A SubmitLink is a special link that acts like a submit button. - It can be inside the form component or inside the form component. + It can be inside the form component or outside the form component.

-

+ Internal SubmitLink
- External SubmitLink + External SubmitLink with confirmation feedbackmessages will be put here

panel contents come here diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.java index fab473f184..0a96d83d17 100644 --- a/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.java +++ b/wicket-examples/src/main/java/org/apache/wicket/examples/compref/SubmitLinkPage.java @@ -44,6 +44,12 @@ public SubmitLinkPage() SubmitLink internal = new SubmitLink("internal") { + @Override + protected boolean shouldInvokeJavaScriptFormOnsubmit() + { + return false; + } + @Override public void onSubmit() {