1

我正在使用 GWT 开发一个向导。在向导的第一页中,我有一个表单组件来上传文件。在向导面板中,当我按下下一个按钮时,我有下一个按钮,如果验证通过,验证方法将被触发,然后我调用 form.submit(); 但在 form.submit() 处理程序启动功能之前,验证方法会完成它。在它完成验证方法后,只有表单提交它才真正参与。我如何控制此事件行为,当我使用 form.submit() 提交表单时,其余操作必须等到此表单返回到它的处理程序。

提前谢谢。

4

2 回答 2

0

编写一个布尔值,一旦验证完成,您将设置为 true。然后启动一个等待该布尔值的计时器。但是考虑使用事件和回调来重复使用。如果您过度使用计时器,使用计时器会使您的代码变得混乱。

@UiHandler("submit")
protected void onSubmit() {
    validated=false;
    validate();
    Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
        public boolean execute() {
            if (validated) {
               if (validationSucceeded()) {
                   submit();
               }
               return false;
            }
            return true;
        }
    }, 250);
}

private boolean validated = false;

private void validate() {
    // do validation
    validated=true;
}
于 2013-11-08T15:54:38.240 回答
0

假设你有一个FormPanel

FormPanel form = new FormPanel();

您可以添加一个处理程序:

form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {

    public void onSubmitComplete(SubmitCompleteEvent event) {
        // TODO: Do the next step in the wizard
        // Use event.getResults() to get the text of the response
    }
});
于 2013-11-07T11:25:16.777 回答