我正在使用Twitter Bootstrap Button JS,有状态按钮部分。
一切都按预期工作,但有时单击按钮 - 它“阻止”表单提交事件。然后表单未提交,按钮不会更改回启用状态。
基本上最后我没有提交表单和禁用按钮。
怎么了?
标记 - 这里没什么特别的,只是一些wicket标记:
<button class="btn btn-primary" wicket:id="submit" type="submit">
<i class="icon-white icon-ok"></i> <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')" +
"})");
}
}
我无法使用按钮解决问题,但找到了解决方法使用SubmitLink并覆盖这样的getTriggerJavaScript
。
@Override
protected String getTriggerJavaScript(){
String script = super.getTriggerJavaScript();
String loadingScript = "$(this).button('loading');";
return loadingScript + script;
}