状态按钮脚本块表单提交?

时间:2012-03-27 07:54:20

标签: button wicket twitter-bootstrap

我正在使用Twitter Bootstrap Button JS状态按钮部分。

一切都按预期工作,但有时单击按钮时 - 它会“阻止”表单提交事件。然后表单未提交,按钮不会更改回启用状态。

基本上我最终没有提交表单和禁用按钮。

有什么问题?

Markup - 这里没什么特别的,只是一些wicket标记:

<button class="btn btn-primary" wicket:id="submit" type="submit">
    <i class="icon-white icon-ok"></i>&nbsp;<wicket:message key="label"/>
</button>

按钮类。只需在页面加载时附加JS工作和执行脚本所需的属性:

public class StatefullButton extends Button {

    public StatefullButton(String id, IModel<String> loadingText) {
        super(id);
        setOutputMarkupId(true);
        add(AttributeModifier.append("data-loading-text", loadingText));
    }

    @Override
    public void renderHead(IHeaderResponse response) {
        response.renderJavaScriptReference(BootstrapButtonPluginResourceReference.get());
        response.renderOnDomReadyJavaScript("$('#" + this.getMarkupId() + "').button();");
        response.renderOnDomReadyJavaScript("$('#" + this.getMarkupId() + "').click(" +
            "function(){" +
                "var btn = $(this) \n" +
                "btn.button('loading')" +
            "})");
    }
}

1 个答案:

答案 0 :(得分:0)

我无法使用按钮解决问题,但找到了解决方法,使用SubmitLink并覆盖getTriggerJavaScript这样的内容。

@Override
protected String getTriggerJavaScript(){
    String script = super.getTriggerJavaScript();
    String loadingScript = "$(this).button('loading');";
    return loadingScript + script;
}