使用wicket禁用按钮时,更改组件的className?
问题描述:
例如:使用wicket禁用按钮时,更改组件的className?
<span class="button4">
<button wicket:id="saveButton" type="submit">
<wicket:message key="modalArchiveAccount.button.save" />
</button>
</span>
从Java代码我设置按钮启用或禁用,问题是,我不知道什么时候按钮被禁用如何改变跨度的className。
答
环绕你的按钮WebMarkupContainer
add(new WebMarkupContainer("spanId") {
{
add(new Button<String>("saveButton")){
[... button logic...]
};
}
});
<span wicket:id="spanId">
<button wicket:id="saveButton" type="submit">
<wicket:message key="modalArchiveAccount.button.save" />
</button>
</span>
然后添加一个新的AttributeModifier( “类”,...)或AttributeAppender( “类”,...)的WebMarkupContainer使用与您用于禁用按钮的逻辑相同。
答
var jSpan = $('#saveButton').parent();
jSpan.removeClass('button4');
jSpan.addlass(someclass);
答
下面是示例代码:
final Button button=new Button("buttn") {
public void onSubmit() {
System.out.println("change....");
setEnabled(false);
};
};
button.add(new AttributeModifier("class", true, new Model<Serializable>() {
@Override
public Serializable getObject() {
if (button.isEnabled())
return "your_enabled_class";
else return "your_disabled_class";
}
}));
是否要禁用按钮* *前的请求发送(以避免提交表单两次)或*后*的要求(不管是什么其他原因。 ..)? – tetsuo 2011-02-04 18:58:10