[ 
https://issues.apache.org/jira/browse/WICKET-6448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16269024#comment-16269024
 ] 

Andrea Del Bene commented on WICKET-6448:
-----------------------------------------

Hi,

as Martin suggested I also prefer to implement an AJAX listener to provide such 
feature. Here is a first implementation:

{code:java}
public class AjaxDisableComponentListener extends AjaxCallListener 
{
    /**
     * 
     */
    private static final long serialVersionUID = -3772784701483881109L;
    private static final String DISABLE_ENABLE_JS = 
";document.getElementById('%s').disabled = %s;";

    @Override
    public CharSequence getBeforeHandler(Component component) 
    {
        return String.format(DISABLE_ENABLE_JS, component.getMarkupId(), true);
    }
    
    @Override
    public CharSequence getCompleteHandler(Component component) 
    {
        return String.format(DISABLE_ENABLE_JS, component.getMarkupId(), false);
    }
}
{code}

Those who need also an indicating picture can use AjaxIndicatorAppender.

> Provide behavior that disables a button after click
> ---------------------------------------------------
>
>                 Key: WICKET-6448
>                 URL: https://issues.apache.org/jira/browse/WICKET-6448
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket-extensions
>    Affects Versions: 8.0.0-M6
>            Reporter: Kamil
>            Assignee: Andrea Del Bene
>         Attachments: block-comment-doublesubmit.png, showcase-preventClick.zip
>
>
> Wicket should provide a Behavior that can be assigned to (Ajax)Buttons and 
> when clicked those buttons should be disabled via the HTML "disabled" 
> attribute.
> For AjaxButtons the behavior should re-enable the button after processing the 
> Ajax response.
> 1)Run the app
> 2)Click "submit" quickly several times
> 3)Watch the console



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to