2010-06-28 2 views
4

Как отменить отправку формы с помощью 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, событие не отменяется.

Так что, я думаю, это поведение браузера. Тем не менее, мне нужно найти способ ...

Редактирование: только что выяснилось, что это происходит только в режиме разработки, я чувствую себя глупо, если раньше не пробовал внешний режим разработки.

+0

Почему вы используете 'form.submit()' 'внутри SubmitHandler'? Он будет отправлен, если вы явно не отмените() 'it. –

+0

Я пропустил это, спасибо. отмена() еще не работает. –

+0

Хм, у меня нет идей - ваш код делает именно то, что предлагают 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 –

ответ

3

Это вопрос, что только происходит в режиме разработки

Я сообщил вопрос: http://code.google.com/p/google-web-toolkit/issues/detail?id=5067

+0

Я думаю, вы забыли добавить, что это происходит только при использовании SubmitButton (?). –

+0

Ooops действительно, спасибо :) –

+0

Все идут голосовать за решение этой проблемы. Это почти заставило меня отвлечься. – David

Смежные вопросы