Hi, You can use AjaxLink with <button />. Wicket will automatically set its type to "button" - https://github.com/apache/wicket/blob/7a87b09e6f96f2fceccb497fa873595c726e5efb/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/AjaxLink.java#L126 .
If you have a form in the page then you should use AjaxButton. In addition you could use #setDefaultFormProcessing(false) for the reset functionality. On Wed, Sep 28, 2022 at 8:46 PM Robert Murphy < robert.mur...@westringtechnologies.com> wrote: > Forgive me if there is already an AjaxButton as described below: > > Currently AjaxButton must be in a form or have a form instance passed into > its constructor and has an onSubmit(...) method and is of type="submit" (by > omitting type attribute, standards consider it a submit). > Proposal: > > * add method onClick(...) to AjaxButton, if AjaxButton is in a form or > a form has been set on it, and it is of type submit, protected onClick(...) > is never called > * AjaxButton can be used outside of a form, protected onSubmit(...) > will never be called on an AjaxButton that is not in a form (unless a form > it is not a descendant of has been passed into the constructor) > * When AjaxButton is not in a form, type will be explicitly, > automatically, set to type="button" unless template has type="reset" or > AttributeModifier is used to set type to reset or a form instance has been > passed into the constructor > * If AjaxButton is in a form or has had a form passed to it > constructor, but type="button" in template or type set to button via > ajaxbutton.add(new AttributeModifier("type","button")) then onSubmit(...) > will never be called, onClick(...) will be called instead. > Purpose: There are many instances where developers use AjaxLink but from > an ADA Compliance standpoint that is frowned upon if not used for loading > content or navigating content. Links (<a/>) should link to something (go to > another page, load additional content into the current page, jump to > another location on the current page, etc), Buttons (<button/>) should do > something (submit a form, remove or hide an element, reset a form or field, > start a client side process, etc). You should never use an <a/> to reset a > form, that is what <button type="reset"/> is for, you should never use an > <a/> to start a client side program, that is what <button type="button"/> > is for. This is important from a semantic markup standpoint, accessibility > tools should be able to figure out how to present things without analyzing > CSS and JavaScript > > The AjaxButton should behave exactly like an AjaxLink when it is included > in a template where it is not a descendant of a form or where its type has > been set to reset or button. > > Robert Murphy | Software Developer - Rocky Mountain ATV/MC > > Rocky Mountain ATV/MC - 502.291.2076<tel:+15022912076> > Address - 77 E 800 N, Spanish Fork, UT 84660< > https://goo.gl/maps/ERSNZK8AK5Bf1Xnh9> > Website - www.rockymountainatvmc.com<https://www.rockymountainatvmc.com/> > >