我想允许我的用户在点击时重新启用已禁用的复选框。我试图将onClickHandler附加到我的复选框,但由于它被禁用,它看不到捕获该事件:
checkbox.onClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
// do something
}
});
我错过了什么吗?或者我是否需要编写自己的复选框,从CheckBox扩展到那样做?
答案 0 :(得分:0)
您可以尝试将CheckBox放在FocusPanel或类似内容中。这样,当禁用该复选框时,单击事件将落入FocusPanel,可以为您启用复选框。您可能希望在复选框单击处理程序中放置event.stopPropagation()
,以便在启用复选框时停止调用焦点面板单击处理程序。
我没有对此进行测试,但我相信它会起作用。但要小心。我建议除了启用复选框之外还提供其他方法,因为很多用户都不会理解点击禁用的复选框会产生影响。
答案 1 :(得分:0)
本身不是答案,但是我遇到了类似的问题,试图向禁用的按钮添加工具提示,告诉用户为什么禁用它但工具提示不显示已禁用的项目。我不得不把按钮放在容器里,把工具提示放在容器上。
答案 2 :(得分:0)
在GWT 2.2上,CheckBox小部件:
CheckBox check= new CheckBox();
check.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if(((CheckBox) event.getSource()).getValue()){
//is Checked
}else{
//unChecked
}
}
});