在GWT页面上启用和禁用"保存"按钮

Tih*_*hom 5 javascript events gwt textbox javascript-events

我正在处理的应用程序包含大量文本框的设置数据页面; 每个页面都有一个保存按钮.我已将大多数页面定义为*.ui.xml文件并使用GWT 2.0 UI绑定.

我想添加一个禁用onload的保存按钮,只有在用户将数据修改为其中一个文本框后才会启用.

我知道我可以为页面上的每个元素注册一个事件处理程序来启用按钮,但我想要一个更优雅的解决方案.理想情况下,我想定义一个"监听"页面上的事件并自行更改的按钮.这在GWT中是否可行?

Jla*_*Jla 5

您还可以使用更改事件添加到整个包含小部件 addDomHandler

public class SetupDataPage extends Composite{

  // Binder stuff  

  // Button from the binder
  @UiField Button saveBtn;

  public SetupDataPage(){
        addDomHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {
                saveBtn.setEnabled(true);
            }
        }, ChangeEvent.getType());
  }
}
Run Code Online (Sandbox Code Playgroud)

注意这将触发SetupDataPage中所有文本框的事件.另一方面,它可能不适用于某些特定的小部件.我知道它适用于GWT的文本框,复选框,列表框......