我想要的是:
>如果我点击一个按钮,它应该不启用(不可点击)
在其他方法(点击)完成之前,只有AFTER
方法的结束.
这是我的按钮代码:
- @Override
- protected void onInitialize() {
- add(createOkLink());
- }
- private IndicatingAjaxLink<Void> createOkLink() {
- final IndicatingAjaxLink<Void> ret = new IndicatingAjaxLink<Void>("okLink") {
- private static final long serialVersionUID = 1L;
- @Override
- public void onClick(AjaxRequestTarget target) {
- //when I click on it,this button (link) should not be enabled while the rest of the methods are not finished.
- method1(); //about 2-5 seconds running time
- method2(); //about 2-5 seconds running time
- method3(); //about 2-5 seconds running time
- Feedback.success("success");
- target.add(Feedback);
- //after every method has finished,the button should be clickable againg
- }
- };
- ret.setOutputMarkupId(true);
- return ret;
- }
我希望有一个人可以帮助我!
我正在使用Wicket 6.
- final Form<?> form = new Form<>("form");
- form.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);
- add(form
- .add(new FeedbackPanel("Feedback"))
- .add(new AjaxButton("button") {
- @Override
- protected void onSubmit(AjaxRequestTarget target,Form<?> form) {
- info(System.currentTimeMillis());
- target.add(form);
- try {
- TimeUnit.SECONDS.sleep(1);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- @Override
- protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
- super.updateAjaxAttributes(attributes);
- attributes.getAjaxCallListeners().add(new AjaxCallListener()
- .onBefore("$('#" + getMarkupId() + "').prop('disabled',true);")
- .onComplete("$('#" + getMarkupId() + "').prop('disabled',false);"));
- }
- }));