Calling a JavaScript function on a component's onclick:
... new AjaxLink("link") { protected onClick(AjaxRequestTarget target) { ...} @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxCallDecorator() { @Override public CharSequence decorateScript(Component c, CharSequence script) { return super.decorateScript(c, "alert('This is my javascript call'); " + script); } }; } } ...
An alternative approach:
link.add(new AttributeAppender("onclick", new Model("alert('This is my JS script');"), ";"));
Also see HOWTO do Javascript call after each Wicket AJAX update
Also see Generic Busy Indicator (for both Ajax and non-Ajax submits)