Как отменить отправку формы с помощью GWT?Отмена отправки формы
Мне нужно проверить форму и обработать некоторые данные перед ее отправкой.
До сих пор я делал следующее: проблема заключается в том, что форма отправляется даже в случае отмены SubmitEvent.
form.addSubmitHandler(new SubmitHandler() {
@Override
public void onSubmit(SubmitEvent event) {
if(validate()) {
// i do some processing here
form.submit();
}
else event.cancel(); // submits anyway
}
});
Это проблема GWT? Как мне это сделать?
Редактировать: Я только узнал, что если бы это была кнопка, которая использует форму.submit() при нажатии, событие отправки отменяется. Однако, если нажата кнопка SubmitButton, событие не отменяется.
Так что, я думаю, это поведение браузера. Тем не менее, мне нужно найти способ ...
Редактирование: только что выяснилось, что это происходит только в режиме разработки, я чувствую себя глупо, если раньше не пробовал внешний режим разработки.
Почему вы используете 'form.submit()' 'внутри SubmitHandler'? Он будет отправлен, если вы явно не отмените() 'it. –
Я пропустил это, спасибо. отмена() еще не работает. –
Хм, у меня нет идей - ваш код делает именно то, что предлагают javadocs для FormPanel (http://google-web-toolkit.googlecode.com/svn/javadoc/2.0/com/google/gwt/user/client /ui/FormPanel.html). Я искал список проблем GWT, и есть некоторые проблемы, похожие на то, с чем вы сталкиваетесь, но они были исправлены с ~ 1.7 - какую версию вы используете? Но я предлагаю просто придерживаться нормальной кнопки «Button» и добавлять «ClickHandler» явно - меньше хлопот: P –