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